Skip to content

tomerfiliba/agnos

Repository files navigation

Agnos - The Agnostic RPC Framework

Agnos is a cross-platform, cross-language, lightweight RPC framework.


==============================================================================
  Discloure
==============================================================================
Agnos is being developed at IBM XIV (http://www.xivstorage.com/), 
at the Host Side Group, and is released as an Open Source project under the 
Apache 2 license. See the LICENSE file for more info.

The following statements was required by our lawyers:
 * The design of the project had been inspired by Thrift 
   (http://incubator.apache.org/thrift), although the projects do not share 
   code. Thrift is licensed as Apache 2, which allows deriviative works.
 
 * The name "Microsoft" appears several times in the repository, in 
   Visual Studio solution and project files (.sln, .csproj, .vcxproj), as
   these files reference XML schemas; in paths of some executable tools;
   and in documentation material. This does not imply that Microsoft is in 
   anyway affiliated with this project.


==============================================================================
  How to run the Agnos Toolchain from a cloned repository:
==============================================================================
1) Clone this repository

2) Install scons (http://www.scons.com)

3) Create a symlink (on Windows use mklink) to compiler/src/agnos_compiler and place
   it somewhere in your PYTHONPATH, e.g.:
   
   $ ln -s /absolute/path/of/agnos_toolchain/compiler/src/agnos_compiler /usr/lib/python2.6/site-packages/agnos_compiler
   
   Note: the link should be named "agnos_compiler"

4) Create a symlink to libagnos/python/src/agnos and place it somewhere in your 
   PYTHONPATH, e.g:

   $ ln -s /absolute/path/of/agnos_toolchain/libagnos/python/src/agnos /usr/lib/python2.6/site-packages/agnos
   
   Note: the link should be named "agnos"

5) Put compiler/bin/agnosc and compiler/bin/agnosrc-py in your PATH (either by
   adding them to the PATH or by creating symlinks to /usr/bin, etc.)

   $ ln -s /absolute/path/of/agnos_toolchain/compiler/bin/agnosc /usr/bin/agnosc
   $ ln -s /absolute/path/of/agnos_toolchain/compiler/bin/agnosrc-py /usr/bin/agnosrc-py
   
   Note: on Windows, create the links to agnos.bat and agnosrc-py.bat

6) Build the parts of libagnos that you wish to use:
   * Java: cd to libagnos/java and run scons

   * C#: cd to libagnos/csharp/src and run "msbuild Agnos.sln" or "xbuild Agnos.sln" 
   
   * C++: cd to libagnos/cpp and run scons
     you may need to tweak the scons file, to define/undefine 
     BOOST_PROCESS_SUPPORTED

7) See that everything's working:
   $ agnosc
   Usage: agnosc [options]
    
   agnosc: error: must specify agnos input file(s)
    
   $ agnosrc-py
   Usage: agnosrc-py [options]
    
   agnosrc-py: error: must specify agnos input file(s)