[ANN] http-kit 2.0.0 released

441 views
Skip to first unread message

Shen, Feng

unread,
Mar 29, 2013, 2:03:38 AM3/29/13
to Clojure
Hello folks. 

I just released version 2.0.0 of http-kit. 


2.0.0 (2013/3/29)
  1. Unify WebSocket and HTTP long polling/streaming with Channel protocol and with-channel (API breaks with the RC)
  2. WebSocket support sending and receiving binary frame with byte[]
  3. Support HTTP streaming
  4. WebSocket message ordering is guaranteed by server

Updated documentation: http://http-kit.org/server.html

Let's build amazing realtime applications with Clojure, using http-kit.

The with-channel API is not compatible with the RC releases. The new is better and much easier to understand and use. The old's documentation can be found here

- feng

xumingmingv

unread,
Mar 29, 2013, 2:07:39 AM3/29/13
to clo...@googlegroups.com, xumingmingv
Good Job!

--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@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+u...@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+u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Feng Shen

unread,
May 3, 2013, 12:05:05 PM5/3/13
to clo...@googlegroups.com
Hi, 

just released 2.1.0.

[http-kit "2.1.0"] ; Add to your project.clj.

Compare to 2.0.0, noticeable changes:
  1. Much faster: about 30%~80% faster.
  2. The client support HTTPS now
  3. :as option to do client output coercion
Not that noticeable changes:
  1. few minor bugs fixes
  2. less RAM usage

The full update log: https://github.com/http-kit/http-kit/blob/master/history.md

Updated client documentation: http://http-kit.org/client.html

Shantanu Kumar

unread,
May 3, 2013, 3:58:46 PM5/3/13
to Clojure
Congratulations on the release! Could you please let me know whether
HTTP-Kit has built-in support for applying backpressure, and if it
does then how to configure the same?

Shantanu

On May 3, 9:05 pm, Feng Shen <shen...@gmail.com> wrote:
> Hi,
>
> just released 2.1.0.
>
> [http-kit "2.1.0"] ; Add to your project.clj.
>
> Compare to 2.0.0, noticeable changes:
>
>    1. Much faster: about 30%~80% faster.
>    2. The client support HTTPS now
>    3. :as option to do client output coercion
>
> Not that noticeable changes:
>
>    1. few minor bugs fixes
>    2. less RAM usage
>
> The full update log:https://github.com/http-kit/http-kit/blob/master/history.md
>
> Updated client documentation:http://http-kit.org/client.html
>
>
>
>
>
>
>
> On Friday, March 29, 2013 2:03:38 PM UTC+8, Feng Shen wrote:
>
> > Hello folks.
>
> > I just released version 2.0.0 of http-kit.
>
> > *2.0.0 (2013/3/29)*
>
> >    1. Unify WebSocket and HTTP long polling/streaming with Channel
> >    protocol and with-channel (API breaks with the RC)
> >    2. WebSocket support sending and receiving binary frame with byte[]
> >    3. Support HTTP streaming
> >    4. WebSocket message ordering is guaranteed by server
>
> > Updated documentation:http://http-kit.org/server.html
>
> > Let's build amazing realtime applications with Clojure, using http-kit.
>
> > The with-channel API is not compatible with the RC releases. The new is
> > better and much easier to understand and use. The old's documentation can
> > be found here <http://http-kit.org/server_old.html>
>
> > - feng

Michael Klishin

unread,
May 3, 2013, 4:39:41 PM5/3/13
to clo...@googlegroups.com

2013/5/3 Feng Shen <she...@gmail.com>

Compare to 2.0.0, noticeable changes:
  1. Much faster: about 30%~80% faster.
  2. The client support HTTPS now
  3. :as option to do client output coercion
Not that noticeable changes:
  1. few minor bugs fixes
  2. less RAM usage

The full update log: https://github.com/http-kit/http-kit/blob/master/history.md


I'd highly recommend starting a new thread for each new version.
Also, your change log is in chronological order. Keeping it in
reverse chronological order (2.1.0 first) would make it much easier
to quickly discover recent changes.

Good job on the performance improvements!
--
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin

László Török

unread,
May 3, 2013, 7:54:02 PM5/3/13
to clo...@googlegroups.com
Hi,

regarding the perf. improvements, is it client or server?

Thx

Las


2013/5/3 Michael Klishin <michael....@gmail.com>

--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@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+u...@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+u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
László Török

Shen, Feng

unread,
May 3, 2013, 10:23:02 PM5/3/13
to Clojure
> regarding the perf. improvements, is it client or server?

It's the server.  Due to IO model change: One IO thread (reading and writing) => One thread reading, decoding + many threads writing

沈锋



You received this message because you are subscribed to a topic in the Google Groups "Clojure" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/clojure/YcezxQKG6rs/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email to clojure+u...@googlegroups.com.

Shen, Feng

unread,
May 3, 2013, 10:44:30 PM5/3/13
to Clojure
> Could you please let me know whether HTTP-Kit has built-in support for applying backpressure, and if it
does then how to configure the same

Then yes.  http-kit uses a bounded queue for accepting request, when too many request coming, they get queued, if the queue exceeds a certain size(control by :queue-size option), request get rejected, client will get 503.
And, there is another option :thread controls how many worker threads to compute HTTP response from request.

There is another possible problem: many requests come in short time, server compute the response (which is large) very fast(so the request did not get rejected), and the output link is slow(like low bandwidth network connection). In this scenario, the HTTP response get queued, wait for TCP buffer to flush. 



沈锋



>
> > - feng

Hoàng Minh Thắng

unread,
May 4, 2013, 6:48:15 AM5/4/13
to clo...@googlegroups.com
On Friday, March 29, 2013 1:03:38 PM UTC+7, Feng Shen wrote:
Hello folks. 

I just released version 2.0.0 of http-kit.

Looks great, Feng Shen.
I couldn't find a road-map so I ask here. Will there be a client-side for browsers in ClojureScript or Javascript? I mean something similar to sockjs implementation.

Shen, Feng

unread,
May 4, 2013, 10:37:15 AM5/4/13
to Clojure
I hope support autoload .It's very useful for develop!


沈锋



On Sat, May 4, 2013 at 9:08 PM, 张保良 <jfre...@gmail.com> wrote:
I hope support autoload .It's very useful for develop!

在 2013年3月29日星期五UTC+8下午2时03分38秒,Feng Shen写道:
--

Shen, Feng

unread,
May 4, 2013, 10:40:53 AM5/4/13
to Clojure
Will there be a client-side for browsers in ClojureScript or Javascript? I mean something similar to sockjs implementation.

I have't plan to do that yet.  http-kit is focused to provide a HTTP library for Clojure. 

沈锋



--
Reply all
Reply to author
Forward
0 new messages