Автор высокопроизводительного хранилища Redis
представил проект linenoise, в рамках которого разработан распространяемый под лицензией BSD аналог для библиотек по организации интерактивной обработки строк - readline и libedit. Новая библиотека была написана после безуспешных попыток найти аналогичное решение, не такое раздутое как readline (30 тыс. строк кода) и libedit (20 тыс. строк кода).
Автор утилиты, Сальватор Санфилиппо, ставит под сомнение необходимость динамического связывания крупноразмерных библиотек ради одного только ввода-вывода строк с терминала. Он указывает на то, что для использования readline программа должна удовлетворять таким ограничениям, как конфигурирование исходников скриптом перед сборкой и совместимость с лицензией GPL, в то время как альтернативы, такие как libedit из проекта BSD, недостаточно известны. Кроме того, при таком конфигурировании наличие readline считается необязательным, что не отражает степень её фактической необходимости для конечного пользователя. Работая над redis-cli, он написал менее 400 строчек кода, эмулирующего работу со строками обычного VT100-терминала и не требующего настройки.
Несмотря на то, что стадия разработки данной библиотеки ещё ранняя, её создатель уверен, что многие очевидные ошибки или трудности сборки решатся в течение нескольких недель, после которых, как он ожидает, "у производителей утилит, использующих ввод из командной строки, не будет оправданий не укомплектовывать их поддержкой простого редактирования строки ввода", поскольку лицензия BSD позволяет использовать библиотеку Linenoise и в проприетарных приложениях, включая встраиваемые устройства.
|