Unified API of WebSocket and HTTP long polling/streaming for Clojure(http-kit.org)
http-kit.org
Unified API of WebSocket and HTTP long polling/streaming for Clojure
http://http-kit.org/index.html
4 comments
This 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/
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!
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.
[1] http://http-kit.org/migration.html#https
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.
[1] http://http-kit.org/migration.html#https
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?
[1] https://github.com/ptaoussanis
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?
[1] https://github.com/ptaoussanis
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
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