Copyright (c) 2013-2014 Jean Parpaillon
Copyright (c) 2015-2016 Inria
Version: 1.0
Authors: Jean Parpaillon ([email protected]
).
License: Due to recent abuse, the license has changed from APACHE 2.0 to CC BY-NC-SA which is not a free software license. We hope that an arrangement will be quickly found to come back to previous licensing.
erocci
is a framework for building OCCI like API, with the following objectives:
- 100% compliance with OCCI specifications (core and rendering)
- scalability
- clear separation between
- rendering:
text/occi
,text/plain
,application/occi+json
,application/occi+xml
, etc.
- rendering:
- transport: HTTP, XMPP
- backends: storage (Mnesia, etc.), "procci" to other APIs
- small and heavily tested
Current version of erocci is packaged into a ready-to-use docker: see README
erocci is made up of several pluggable components. These components are implemented as erlang/OTP applications.
erocci_core
: OCCI Runtime Kernel, renderers and parsers and plugin APIserocci_authnz
: authnz plugins APIerocci_listener_http
: HTTP(s) protocol listenererocci_backend_mnesia
: Mnesia database backenderocci_backend_dbus
: D-Bus backends API, allows development of backends in any language supported by D-Bus
erocci is written in erlang.
- erlang/OTP, version 18 or greater
- make, gcc
- one of libxml2 or libexpat headers
# wget http://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i erlang-solutions_1.0_all.deb
# sudo apt-get update
# sudo apt-get install build-essential erlang libxml2-dev
yum install erlang curl gcc libxml2-devel gcc-c++
- Requirements:
- erlang/OTP: https://www.erlang-solutions.com/resources/download.html
- libxml2 (
brew install libxml2
)
Configure sources and fetch dependencies:
$ ./bootstrap
(Optional) Run configure again for specific options
$ ./configure
On Mac OS X :
- Add a link in libxml2 include directory for headers to be found (they are expected to be in $LIBXML2_HOME/include/libxml), for instance (depending on your installed version of libxml2) :
$ ln -s /usr/local/Cellar/libxml2/2.9.3/include/libxml2/libxml /usr/local/Cellar/libxml2/2.9.3/include
- Then run configure with the following option (again, adapt to your installed version of libxml2) :
$ ./configure --with-libxml2=/usr/local/Cellar/libxml2/2.9.3
Build:
$ make
erocci is configured with a single config file. Several example config
files are available in: config/
Start erocci with:
$ ./start.sh -c config/default.config
- [email protected] - Subscribe here
- [email protected] - Subscribe here
Visit CI results on http://travis-ci.org/erocci/erocci