Unified API of WebSocket and HTTP long polling/streaming for Clojure
http-kit.orgThis seems similar to SignalR in .NET world, would you mind comparing the two feature-wise ?
I am afraid http-kit is much feature less than SignalR. SignalR provides client side javascript[1], and hubs. http-kit provide non of these. http-kit just provide a way to get a Channel that can be used to push data to client, The Channel can be WebSocket or HTTP (long polling/streaming). IMO, http-kit is more like a unix command line tool, tiny and focus.
Socket.IO[2] is more like SignalR compare to http-kit.
[1] jquery.signalR-1.0.1.min.js [2] http://socket.io/
Hi Feng,
Great work! I know it's quite complicated, but how are the plans for https support coming along?
Kudos to you and Peter on a great library!
Thanks for the kind words.
For the server, https is not planed, since It's better be done by Nginx or something alike [1].
For the client, https is planed. We have use case for it, too. Some time is needed to work on it. It will come out in one or two month, I guess.
I, and many others, want to use this in production. Is the API solidified, as per version 2.0.0?
Yes, it's 2.0.0, that's a promise of the API. No API breaks after 2.0.0 get released (It's already released today).
To tell the truth, I, Peter[1], and a few others take more than a month to think and discuss the API, even though there are just few functions to export. We try our best to make it better. In the end, I think, We are quite happy with what we get now: the unified API.
If a very good idea found to do the API, but the API would break, then it's version 3. But version 2 will still be maintained, and any bugs will get fixed. That's the promise.
Is this address your concern?
How does compare with all the other async offerings for clojure like aleph and pure netty?
I'm curious how it compares to pedestal.io
pedestal is quite a large project, try to offer a complete solution for building web application in Clojure, from server side to client side, to tooling.
http-kit is a very small and focused library, It just do one thing: talk in HTTP. http-kit need to work together with other libraries like Ring[1] and Compojure[2] to do the server side.
Few good things about http-kit: 1. Very fast and scalable, almost as fast as what you can get from the hardware. 2. Focus, do one thing and do it well, thing about Linux/Unix's philosophy. Personally, I prefer this way of doing software.
[1] https://github.com/ring-clojure/ring [2] https://github.com/weavejester/compojure