add first documentation draft and framework
[protos/libecoli.git] / doc / index.rst
diff --git a/doc/index.rst b/doc/index.rst
new file mode 100644 (file)
index 0000000..a5f8731
--- /dev/null
@@ -0,0 +1,45 @@
+..  SPDX-License-Identifier: BSD-3-Clause
+    Copyright 2019 Olivier Matz <zer0@droids-corp.org>
+
+Libecoli Documentation
+======================
+
+This is the documentation of *libecoli*. This library simplifies the
+creation of interactive command line interfaces (*Ecoli* stands for
+Extensible COmmand LIne).
+
+What can it be used for?
+
+- complex interactive cli interface in C (ex: a router cli)
+- interactive cli for shell scripts
+- application arguments parsing, natively supporting bash completion
+- parsers
+
+What are the 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
+- YAML API and Shell API: used from shell scripts
+
+Who use it?
+
+- 6WIND_ for its Turbo Router cli
+
+.. _6WIND: https://www.6wind.com
+
+.. toctree::
+   :maxdepth: 2
+   :caption: Contents:
+
+   overview
+   installation
+   user_guide
+   architecture
+   api
+   contributing