# Clixon Clixon is a YANG-based configuration manager, with interactive CLI, NETCONF and RESTCONF interfaces, an embedded database and transaction support. * [Background](#background) * [Frequently asked questions](doc/FAQ.md) * [Installation](#installation) * [Licenses](#licenses) * [Support](#support) * [Dependencies](#dependencies) * [Extending](#extending) * [XML and XPATH](#xml) * [Yang](#yang) * [Netconf](#netconf) * [Restconf](#restconf) * [Datastore](datastore/README.md) * [Authentication](#auth) * [NACM Access control](#nacm) * [Example](example/) * [Changelog](CHANGELOG.md) * [Runtime](#runtime) * [Clixon project page](http://www.clicon.org) * [Tests](test/) * [Docker](docker/) * [Reference manual](http://www.clicon.org/doxygen/index.html) (Note: the link may not be up-to-date. It is better to build your own: `cd doc; make doc`) Background ========== Clixon was implemented to provide an open-source generic configuration tool. The existing [CLIgen](http://www.cligen.se) tool was for command-lines only, while clixon is a system with configuration database, xml and rest interfaces. Most of the projects using clixon are for embedded network and measuring devices. But Clixon is more generic than that. Users of clixon currently include: * [Netgate](https://www.netgate.com) * [CloudMon360](http://cloudmon360.com) * [Grideye](http://hagsand.se/grideye) * [Netclean](https://www.netclean.com/solutions/whitebox) # only CLIgen * [Prosilient's PTAnalyzer](https://prosilient.com) # only CLIgen See also [Clicon project page](http://clicon.org). Clixon runs on Linux, [FreeBSD port](https://www.freshports.org/devel/clixon) and Mac/Apple. CPU architecures include x86_64, i686, ARM32. Installation ============ A typical installation is as follows: ``` configure # Configure clixon to platform make # Compile sudo make install # Install libs, binaries, and config-files sudo make install-include # Install include files (for compiling) ``` One [example application](example/README.md) is provided, a IETF IP YANG datamodel with generated CLI, Netconf and restconf interface. Licenses ======== Clixon is open-source and dual licensed. Either Apache License, Version 2.0 or GNU General Public License Version 2; you choose. See [LICENSE.md](LICENSE.md) for the license. Dependencies ============ Clixon depends on the following software packages, which need to exist on the target machine. - [CLIgen](http://www.cligen.se) If you need to build and install CLIgen: ``` git clone https://github.com/olofhagsand/cligen.git cd cligen; configure; make; make install ``` - Yacc/bison - Lex/Flex - Fcgi (if restconf is enabled) Support ======= Clixon interaction is best done posting issues, pull requests, or joining the [slack channel](https://clixondev.slack.com). [Slack invite](https://join.slack.com/t/clixondev/shared_invite/enQtMzI3OTM4MzA3Nzk3LTA3NWM4OWYwYWMxZDhiYTNhNjRkNjQ1NWI1Zjk5M2JjMDk4MTUzMTljYTZiYmNhODkwMDI2ZTkyNWU3ZWMyN2U). Extending ========= Clixon provides a core system and can be used as-is using available Yang specifications. However, an application very quickly needs to specialize functions. Clixon is extended by writing plugins for cli and backend. Extensions for netconf and restconf are also available. Plugins are written in C and easiest is to look at [example](example/README.md) or consulting the [FAQ](doc/FAQ.md). XML === Clixon has its own implementation of XML and XPATH implementation. The standards covered include: - [XML](https://www.w3.org/TR/2008/REC-xml-20081126) - [Namespaces](https://www.w3.org/TR/2009/REC-xml-names-20091208) - [XPATH](https://www.w3.org/TR/xpath-10) Not supported: - The figure shows the SDK runtime of Clixon.