

Unified API of WebSocket and HTTP long polling/streaming for Clojure - fshen
http://http-kit.org/index.html

======
polskibus
This seems similar to SignalR in .NET world, would you mind comparing the two
feature-wise ?

~~~
shenedu
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/>

------
donjigweed
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!

~~~
shenedu
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>

------
ceslami
I, and many others, want to use this in production. Is the API solidified, as
per version 2.0.0?

~~~
shenedu
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>

------
toisanji
How does compare with all the other async offerings for clojure like aleph and
pure netty?

~~~
matthavener
I'm curious how it compares to pedestal.io

~~~
shenedu
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>

