Agnos - The Agnostic RPC Framework
Agnos is a cross-platform, cross-language, lightweight RPC framework.
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.
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)