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!