Self-contained
Обожаю «self-contained» библиотеки. Я не знаю, как правильно их назвать, но смысл в том, вместо компилирования отдельных библиотек и/или добавления зависимостей, разработчик кидает в проект один-два файлика и получает много пользы. Они как ноутбуки вместо десктопов — взял и понес, работай где хочешь.
Например, SQLite — один sqlite.c
файл (amalgamation). Добавил в проект и получил полноценную SQL базу.
Сегодня обнаружил s7 (скачать) — улучшенный TinyScheme. Добавил в проект s7.h
и s7.c
и получил полноценный интерпретатор Scheme (который можно, например, использовать в качестве скриптового языка для программы).
Кстати, если будет время, перепишу TinySchemeObjC с s7 вместо TinyScheme, потому что в s7 можно добавлять свои типы в Scheme. Сразу отпадет надобность писать второй сборщик мусора для ObjC-объектов (который я уже, кстати, написал, но еще не закоммитил :).
RegexKitLite не соответствует критериям, потому что требует линковки с libicucore.dylib
и является просто интерфейсом к ней, тем не менее, стоит его тоже упомянуть, потому как добавив два файла к проекту, получим методы в NSString
для работы с регулярными выражениями, а это — пятьсот килограммов пользы.
Какие еще вы знаете self-contained полезности вроде этих? Пишите мне в твиттер (@dchest), добавлю сюда.