Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rjarry/libecoli
Extensible COmmand LIne library
https://github.com/rjarry/libecoli
c cli terminal
Last synced: 18 days ago
JSON representation
Extensible COmmand LIne library
- Host: GitHub
- URL: https://github.com/rjarry/libecoli
- Owner: rjarry
- License: bsd-3-clause
- Created: 2024-10-23T15:37:47.000Z (2 months ago)
- Default Branch: master
- Last Pushed: 2024-11-18T21:18:21.000Z (about 2 months ago)
- Last Synced: 2024-11-18T21:50:57.862Z (about 2 months ago)
- Topics: c, cli, terminal
- Language: C
- Homepage:
- Size: 841 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# libecoli
![logo.svg](https://raw.githubusercontent.com/rjarry/libecoli/master/doc/logo.svg)
libecoli stands for **E**xtensible **CO**mmand **LI**ne library.
This library provides helpers to build interactive command line interfaces.
## What can it be used for?
* Complex interactive command line interfaces in C (e.g.: a router CLI).
* Application arguments parsing, natively supporting bash completion.
* Generic parsers.## Main Features
* Dynamic completion.
* Contextual help.
* Integrated with libedit, but can use any readline-like library.
* Modular: the cli behavior is defined through an assembly of basic nodes.
* Extensible: the user can write its own nodes to provide specific features.
* C API.## Architecture
See [architecture.md](https://github.com/rjarry/libecoli/blob/master/doc/architecture.md).
## License
libecoli uses the Open Source BSD-3-Clause license. The full license text can
be found in LICENSE.libecoli makes use of Unique License Identifiers, as defined by the SPDX
project (https://spdx.org/):- it avoids including large license headers in all files
- it ensures licence consistency between all files
- it improves automated detection of licencesThe SPDX tag should be placed in the first line of the file when possible, or
on the second line (e.g.: shell scripts).## Projects that use libecoli
* [6WIND Virtual Service Router](https://doc.6wind.com/new/vsr-3/latest/vsr-guide/user-guide/cli/index.html)
* [grout # a graph router based on DPDK](https://github.com/DPDK/grout)