Awesome! At Vital Labs we use Aleph in production for our HTTP and (soon to be) websocket services. I have nothing but good things to say about it. It makes using Netty a breeze in Clojure.
For an unrelated side project, I have been using Aleph to communicate over UDP with an old MMORPG called Star Wars Galaxies. Since UDP is not stream oriented, some of the architecture which make Aleph easy to reason about through Manifold for HTTP/TCP do not seem to carry over as cleanly when dealing with UDP services. Would you be open to writing a comprehensive UDP example for Aleph so that potential users could see how the author intends such services to be written in tandem with your other libraries, namely Manifold, Gloss, and byte-streams? In particular, SWG uses a convoluted protocol which involves optional XOR decryption of the body using an integer exchanged in the first packet you see from the game client (and saved for all future communication with the client until they go link dead), followed by optional decompression with DEFLATE of the body (not the header nor footer) depending on a value in the decrypted first byte of the footer, followed by variable-length (opcode driven) body decoding. To deal with the problem of unreliable transmission, you also need to ack sequenced packets before responding to a specific kind of message. Sometimes this needs to be repeated due to loss, etc. To respond you also need to invert the decoding process, so compress -> encrypt -> etc. Here's an overview of the protocol if you're interested in seeing the potential complexities that come up with protocols like these: http://wiki.swganh.org/index.php/Packet_Guides Since many of these requirements break the more functional, streaming nature of Manifold's design I have found that the code quickly devolves into madness. I imagine it would be very enlightening to see how you would solve these or similar problems with Aleph. Thanks for the great library, Adrian On Sunday, April 3, 2016 at 2:44:53 AM UTC-4, Zach Tellman wrote: > > This release represents a number of incremental improvements to 0.4.0, > which has been handling billions of daily requests for close to a year. > > * Documentation can be found at http://aleph.io/ > * Literate examples of usage can be found at > http://aleph.io/aleph/literate.html > * Comparative benchmarks can be found at > https://www.techempower.com/benchmarks/#section=data-r12&hw=peak&test=plaintext&l=4, > > which may or may not be relevant to your particular use case > > If anyone has questions, I'm happy to answer them. > -- 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.