Navigation

Table Of Contents

Features

  • Cross-language: interoperate seamlessly between java, C#, C++, and python.
  • Cross-platform: relies only on cross-platform libraries and tools, and the protocol itself is platform-agnostic.
  • SSL integration: integrates with each language’s SSL facilities to enable encrypted and authenticated sessions.
  • Lightweight and efficient: Agnos uses a compact binary protocol and supports point-to-point connectivity (no need to set up name servers, web servers, URLs, etc.).
  • srcgen: Generate IDL specifications from in-code comments; only one file to edit
  • RESTful front-end: unsupported languages can use Agnos-exposed services in a RESTful manner, assuming they have HTTP client-side libraries.
  • Multiple topologies:
    • Direct socket connection: clients connect directly to a listening socket
    • HTTP Tunneling: clients can tunnel the protocol over HTTP, sending requests to a web server and have it forward the request to the Agnos service. This is useful in environments that require integration with a web server, or to cross firewalls.
    • Library Mode: instead of setting up a server, you can spawn a server process and connect to it – in one line of code! This is useful when you have a library, written in one language, which you want to make use of from another language.
  • Open Source: Apache license

Planned Features

You can see the most up-to-date planned features and targets on our issue tracker. It’s also possible to comment or vote on features, and we will do our best to use this input for decide on our road map:

Features

  • Planned Features - features which we plan to support in the near future.
  • Optional Features - features which are not likely to be supported in the near future; these are more of ideas we toy with, but we’d love input on.

Targets

Note

A note on terminology: the word target refers to a target language of the Agnos tool-chain, meaning a language for which libagnos has been implemented, and the Agnos compiler can generate binding code for.

We would ultimately want to support as many target languages as possible, but it won’t happen soon. Any help in adding support for these languages (and possibly others) to Agnos would be greatly appreciated!