Skip to content

mdutoo/erocci

 
 

Repository files navigation

Documentation for erocci

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.
  • transport: HTTP, XMPP
  • backends: storage (Mnesia, etc.), "procci" to other APIs
  • small and heavily tested

Build Status Project Stats

Docker

Current version of erocci is packaged into a ready-to-use docker: see README

Architecture

erocci Architecture diagram

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 APIs
  • erocci_authnz: authnz plugins API
  • erocci_listener_http: HTTP(s) protocol listener
  • erocci_backend_mnesia: Mnesia database backend
  • erocci_backend_dbus: D-Bus backends API, allows development of backends in any language supported by D-Bus

Dependencies

erocci is written in erlang.

  • erlang/OTP, version 18 or greater
  • make, gcc
  • one of libxml2 or libexpat headers

Ubuntu / Debian

# 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

Fedora

yum install erlang curl gcc libxml2-devel gcc-c++

MAC OS X

Configuring and Building

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

Running

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

Mailing lists

CI

Visit CI results on http://travis-ci.org/erocci/erocci

Modules

erocci
erocci_app
occi_acl
occi_action
occi_attribute
occi_authnz
occi_authnz_app
occi_authnz_sup
occi_backend
occi_backend_dummy
occi_backend_mnesia
occi_capabilities
occi_category_mgr
occi_cid
occi_collection
occi_config
occi_core_app
occi_entity
occi_extension
occi_hook
occi_http
occi_http_common
occi_http_handler
occi_https
occi_kind
occi_known
occi_link
occi_listener
occi_log_handler
occi_mixin
occi_node
occi_parser
occi_parser_json
occi_parser_json0
occi_parser_occi
occi_parser_plain
occi_parser_tests
occi_parser_text
occi_parser_xml
occi_renderer
occi_renderer_json
occi_renderer_json_tests
occi_renderer_occi
occi_renderer_plain
occi_renderer_text
occi_renderer_uri_list
occi_renderer_xml
occi_request
occi_resource
occi_scanner_json
occi_store
occi_sup
occi_table_mgr
occi_type
occi_uri

About

OCCI compliant REST framework

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 73.2%
  • Erlang 20.8%
  • Makefile 4.1%
  • M4 1.5%
  • Emacs Lisp 0.4%