README.md in http-2-0.12.0 vs README.md in http-2-1.0.0
- old
+ new
@@ -1,18 +1,19 @@
# HTTP-2
[](http://rubygems.org/gems/http-2)
-[](https://coveralls.io/r/igrigorik/http-2)
+[](https://github.com/igrigorik/http-2)
Pure Ruby, framework and transport agnostic, implementation of HTTP/2 protocol and HPACK header compression with support for:
+
* [Binary framing](https://hpbn.co/http2/#binary-framing-layer) parsing and encoding
* [Stream multiplexing](https://hpbn.co/http2/#streams-messages-and-frames) and [prioritization](https://hpbn.co/http2/#stream-prioritization)
* Connection and stream [flow control](https://hpbn.co/http2/#flow-control)
* [Header compression](https://hpbn.co/http2/#header-compression) and [server push](https://hpbn.co/http2/#server-push)
* Connection and stream management
-* And more... see [API docs](http://www.rubydoc.info/github/igrigorik/http-2/frames)
+* And more... see [API docs](https://www.rubydoc.info/gems/http-2)
Protocol specifications:
* [Hypertext Transfer Protocol Version 2 (RFC 7540)](https://httpwg.github.io/specs/rfc7540.html)
* [HPACK: Header Compression for HTTP/2 (RFC 7541)](https://httpwg.github.io/specs/rfc7541.html)
@@ -28,26 +29,27 @@
Your code is responsible for feeding data into the parser, which performs all of the necessary HTTP/2 decoding, state management and the rest, and vice versa, the parser will emit bytes (encoded HTTP/2 frames) that you can then route to the destination. Roughly, this works as follows:
```ruby
require 'http/2'
+
socket = YourTransport.new
conn = HTTP2::Client.new
conn.on(:frame) {|bytes| socket << bytes }
while bytes = socket.read
conn << bytes
end
```
-Checkout provided [client](https://github.com/igrigorik/http-2/blob/master/example/client.rb) and [server](https://github.com/igrigorik/http-2/blob/master/example/server.rb) implementations for basic examples.
+Checkout provided [client](example/client.rb) and [server](example/server.rb) implementations for basic examples.
### Connection lifecycle management
-Depending on the role of the endpoint you must initialize either a [Client](http://www.rubydoc.info/github/igrigorik/http-2/HTTP2/Client) or a [Server](http://www.rubydoc.info/github/igrigorik/http-2/HTTP2/Server) object. Doing so picks the appropriate header compression / decompression algorithms and stream management logic. From there, you can subscribe to connection level events, or invoke appropriate APIs to allocate new streams and manage the lifecycle. For example:
+Depending on the role of the endpoint you must initialize either a [Client](lib/http/2/client.rb) or a [Server](lib/http/2/server.rb) object. Doing so picks the appropriate header compression / decompression algorithms and stream management logic. From there, you can subscribe to connection level events, or invoke appropriate APIs to allocate new streams and manage the lifecycle. For example:
```ruby
# - Server ---------------
server = HTTP2::Server.new
@@ -146,11 +148,11 @@
stream.data(last_chunk)
end
end
```
-Events emitted by the [Stream object](http://www.rubydoc.info/github/igrigorik/http-2/HTTP2/Stream):
+Events emitted by the [Stream object](lib/http/2/stream.rb):
<table>
<tr>
<td><b>:reserved</b></td>
<td>fires exactly once when a push stream is initialized</td>
@@ -250,11 +252,11 @@
})
# split response between multiple DATA frames
stream.data(response_chunk, end_stream: false)
stream.data(last_chunk)
-
+
# now send the previously promised data
push_stream.data(push_data)
end
end
```
@@ -281,6 +283,7 @@
rake
```
### License
-(MIT License) - Copyright (c) 2013 Ilya Grigorik 
+(MIT License) - Copyright (c) 2013-2019 Ilya Grigorik 
+(MIT License) - Copyright (c) 2019 Tiago Cardoso 