caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] [ANN] ocaml-amqp 0.0.1
@ 2015-11-01  8:05 Anders Peter Fugmann
  2015-11-07 14:32 ` Marek Kubica
  0 siblings, 1 reply; 5+ messages in thread
From: Anders Peter Fugmann @ 2015-11-01  8:05 UTC (permalink / raw)
  To: caml-list

Ocaml-Amqp is an async based client library for Amqp.

The library implements 0-9-1 specification of the protocol and support 
for some Rabbitmq server extensions.

Ocaml-Amqp provides low level bindings the to Amqp protocol as well as 
high level messaging patterns. It is implemented in pure Ocaml.

The library implements 0-9-1 specification of the protocol and support 
for some Rabbitmq server extensions.

The code is available in Github[1], and though Opam

Comments, Requests, bug reports, etc. are more than welcome.

/Anders

[1] https://github.com/andersfugmann/ocaml-amqp

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Caml-list] [ANN] ocaml-amqp 0.0.1
  2015-11-01  8:05 [Caml-list] [ANN] ocaml-amqp 0.0.1 Anders Peter Fugmann
@ 2015-11-07 14:32 ` Marek Kubica
  2015-11-07 18:45   ` Anders Peter Fugmann
  0 siblings, 1 reply; 5+ messages in thread
From: Marek Kubica @ 2015-11-07 14:32 UTC (permalink / raw)
  To: Anders Peter Fugmann; +Cc: caml-list

Hello Anders,

I'm very happy to see the announcement! Esp. that it has found its way
to OPAM. I was looking for AMQP libraries recently and found your on
Github some days ago.

Looking forward to try it, I could have potentially lot of uses for it!

On Sun, 1 Nov 2015 09:05:55 +0100
Anders Peter Fugmann <anders@fugmann.net> wrote:

> The library implements 0-9-1 specification of the protocol and
> support for some Rabbitmq server extensions.

Could you explain how it differs from netamqp? I see Issuu seems to
maintain a fork of netamqp that runs on current OCaml versions.

Also, are there plans to have an Lwt backend as well, in a similar way
to Cohttp?

regards,
Marek

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Caml-list] [ANN] ocaml-amqp 0.0.1
  2015-11-07 14:32 ` Marek Kubica
@ 2015-11-07 18:45   ` Anders Peter Fugmann
  2015-11-12 21:37     ` Marek Kubica
  0 siblings, 1 reply; 5+ messages in thread
From: Anders Peter Fugmann @ 2015-11-07 18:45 UTC (permalink / raw)
  To: Marek Kubica; +Cc: caml-list

On 07/11/15 15:32, Marek Kubica wrote:
> Hello Anders,
>
> I'm very happy to see the announcement! Esp. that it has found its way
> to OPAM. I was looking for AMQP libraries recently and found your on
> Github some days ago.
>
> Looking forward to try it, I could have potentially lot of uses for it!
Please let me know how it works out.

>
> On Sun, 1 Nov 2015 09:05:55 +0100
> Anders Peter Fugmann <anders@fugmann.net> wrote:
>
>> The library implements 0-9-1 specification of the protocol and
>> support for some Rabbitmq server extensions.
>
> Could you explain how it differs from netamqp? I see Issuu seems to
> maintain a fork of netamqp that runs on current OCaml versions.
The major difference is that netamqp is based on ocamlnet's async event 
system whereas Ocaml-amqp is based on Core Async.

The bindings not only exposes the AMQP 0-9-1 protocol, but also
tries to give the developer a higher abstraction layer for using 
standard Amqp patterns.

The library is written in my spare time, and has not yet been battle 
tested in a production environment (Although I expect this to happen soon).

Please be aware that even though I do not expect major changes to the 
API, the library is still in heavy development. Please send feedback, 
including suggestions on the API so that these can be incorporated into 
the next version.

>
> Also, are there plans to have an Lwt backend as well, in a similar way
> to Cohttp?
That is currently not a priority. I was considering it when I started 
though.

>
> regards,
> Marek
>
Cheers
Anders

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Caml-list] [ANN] ocaml-amqp 0.0.1
  2015-11-07 18:45   ` Anders Peter Fugmann
@ 2015-11-12 21:37     ` Marek Kubica
  2015-11-12 22:33       ` Anders Peter Fugmann
  0 siblings, 1 reply; 5+ messages in thread
From: Marek Kubica @ 2015-11-12 21:37 UTC (permalink / raw)
  To: Anders Peter Fugmann; +Cc: caml-list

Hello,

On Sat, 7 Nov 2015 19:45:10 +0100
Anders Peter Fugmann <anders@fugmann.net> wrote:

> Please let me know how it works out.

I tried it and it seems to be working quite well. Very nice. Sending a
message based on the tests/main.ml works just fine, receiving it with
pika was no problem, similarly receiving with Langohr worked just as
well.

My biggest problem has, in fact been Async itself. As I tried to send a
single message via AMQP and then terminate the program I added the
Queue.publish call and then >>='d in a function which calls Async's
Shutdown. Unfortunately this terminates the Scheduler before it has a
chance to send the message. Need to explore more of Async to figure out
how to wait for the Deferred.t to be realized before shutting down.

> Please be aware that even though I do not expect major changes to the 
> API, the library is still in heavy development. Please send feedback, 
> including suggestions on the API so that these can be incorporated
> into the next version.

So far I haven't had issues with the API. But having some searchable
docs published somewhere would definitely be helpful.

regards,
Marek

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Caml-list] [ANN] ocaml-amqp 0.0.1
  2015-11-12 21:37     ` Marek Kubica
@ 2015-11-12 22:33       ` Anders Peter Fugmann
  0 siblings, 0 replies; 5+ messages in thread
From: Anders Peter Fugmann @ 2015-11-12 22:33 UTC (permalink / raw)
  To: Marek Kubica; +Cc: caml-list

On 12/11/15 22:37, Marek Kubica wrote:
> Hello,
>
> On Sat, 7 Nov 2015 19:45:10 +0100
> Anders Peter Fugmann <anders@fugmann.net> wrote:
>
>> Please let me know how it works out.
>
> I tried it and it seems to be working quite well. Very nice. Sending a
> message based on the tests/main.ml works just fine, receiving it with
> pika was no problem, similarly receiving with Langohr worked just as
> well.
Glad to hear that.
Btw, which amqp-server have you tested against?

>
> My biggest problem has, in fact been Async itself. As I tried to send a
> single message via AMQP and then terminate the program I added the
> Queue.publish call and then >>='d in a function which calls Async's
> Shutdown. Unfortunately this terminates the Scheduler before it has a
> chance to send the message. Need to explore more of Async to figure out
> how to wait for the Deferred.t to be realized before shutting down.
Async is not to blame here.

The answer should have been 'just close the channel / connection to make 
sure all queues are flushed', but it seems I forgot to implement it. I 
will try and implement it this weekend, along with per message and per 
queue flushing.

In the meantime, if you are using rabbitmq then you can enable confirms 
when creating the channel. Publishing will then return only when 
rabbitmq has acknowledged the message.

>
>> Please be aware that even though I do not expect major changes to the
>> API, the library is still in heavy development. Please send feedback,
>> including suggestions on the API so that these can be incorporated
>> into the next version.
>
> So far I haven't had issues with the API. But having some searchable
> docs published somewhere would definitely be helpful.
I don't know how to make is searchable, but ocamldoc generated 
documentation is available there:

http://andersfugmann.github.io/ocaml-amqp/

>
> regards,
> Marek
>

/Anders



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-11-12 22:33 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-01  8:05 [Caml-list] [ANN] ocaml-amqp 0.0.1 Anders Peter Fugmann
2015-11-07 14:32 ` Marek Kubica
2015-11-07 18:45   ` Anders Peter Fugmann
2015-11-12 21:37     ` Marek Kubica
2015-11-12 22:33       ` Anders Peter Fugmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).