Agnos - The Agnostic RPC Framework
Python Java C++ C# C CSS Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.


Agnos - The Agnostic RPC Framework

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

Agnos is being developed at IBM XIV (, 
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 
   (, 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 (

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 

   $ 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 

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)