A small, portable BSD-licensed readline replacement with UTF-8 support for Linux, Windows, and macOS.
Linenoise-ng is a lightweight, portable line-editing library that provides readline-like functionality for command-line applications. It solves the problem of adding command-line editing, history, and completion to utilities without depending on large GPL-licensed libraries like GNU readline or less common alternatives like libedit.
Developers building command-line tools and utilities who need line-editing capabilities but want to avoid GPL licensing restrictions or heavy dependencies.
It offers a minimal, zero-configuration alternative with permissive BSD licensing, UTF-8 support, and cross-platform compatibility—all in a much smaller codebase than traditional readline implementations.
A small self-contained alternative to readline and libedit that supports UTF-8 and Windows and is BSD licensed.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
With only about 1100 lines of code in the original version, it's designed to be lightweight and easy to integrate into small utilities without bloating the codebase, as emphasized in the philosophy section.
Unlike GNU readline's GPL, the BSD license allows unrestricted use in both open-source and proprietary software, avoiding licensing conflicts, which is a key selling point in the README.
It properly handles UTF-8 characters and works consistently on Linux, Windows, and macOS, making it suitable for internationalized applications, as highlighted in the features list.
The library requires minimal setup, using basic VT100 escapes and providing a pure C interface for easy drop-in replacement, aligning with its goal of being a zero-config readline alternative.
It lacks advanced editing features found in GNU readline, such as vi/emacs keybindings, macros, and extensive history manipulation, focusing on minimalism over completeness.
Despite the C interface, it internally uses C++ and requires a C++11 compiler and CMake to build, which can complicate integration in pure C projects or environments without these tools.
Relies on a subset of VT100 escapes, which may not be sufficient for terminals requiring more advanced emulation or features beyond basic line editing, as admitted in the README's focus on minimal escapes.
linenoise-ng is an open-source alternative to the following products:
libedit is a command line editing library that provides line editing and history capabilities for interactive programs, similar to GNU Readline.
GNU Readline is a library for command-line interfaces that provides line editing, history, and tab completion features for interactive programs.