agnos icon indicating copy to clipboard operation
agnos copied to clipboard

Agnos - The Agnostic RPC Framework

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)