I am pleased to announce the release of clj-amp 0.9.0[1][2], a Clojure
implementation of the AMP[3] protocol (the reference implementation of
which is found in the Twisted networking framework for Python).
clj-amp is implemented on top of Aleph/Manifold/Gloss; Special thanks
to Zach Tellman for the assistance on the Aleph mailing list in
getting the low-level protocol working.

While AMP is currently a somewhat obscure protocol, if you need to
interoperate with an existing system or service using it, this library
should prove useful. It may also be of interest for anyone
implementing a new system and needing an asynchronous[4] RPC-type
protocol with support in multiple languages/frameworks, although there
are other, more popular choices that might be more suitable.

Despite this being the first release, clj-amp is essentially feature
complete: you can define commands using any of the standard argument
types, issue and respond to calls, and define new argument types of
your own if necessary. The 0.9.0 version number reflects my reluctance
to designate this 1.0.0 for the following reasons:

 * Lack of users and real-world testing: the project was just released.

 * API instability: while I do not have any immediate plans to break
API compatibility, I would like to reserve the right to make API
changes based on initial feedback from users (assuming anyone uses
it...) in order to correct any glaring issues with the API that may be
discovered.

 * Minimal test coverage and documentation: I would still like to
expand the test coverage to include more specimens of AMP encodings,
as well as expand the documentation.

* Depending on alpha and SNAPSHOT versions of things: this will be
fixed as the various things I'm relying on make it into release
versions.

Any feedback on the API as well as the documentation would be greatly
appreciated.

[1] https://github.com/mithrandi/clj-amp

[2] https://clojars.org/clj-amp

[3] http://amp-protocol.net/

[4] AMP is both asynchronous, in that requests and responses can be
interleaved and calls ("commands", in AMP terminology) can be
overlapped; it is also symmetric, in that the client and server can
both issue and respond to requests, should this be desired.
-- 
mithrandi, i Ainil en-Balandor, a faer Ambar

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to