|
4 | 4 |
|
5 | 5 | - Introduce a limit to the number of CONTINUATION frames that can be read to prevent resource exhaustion. The default limit is 8 continuation frames, which means a total of 9 frames (1 initial + 8 continuation). This limit can be adjusted by passing a different value to the `limit` parameter in the `Continued.read` method. Setting the limit to 0 will only read the initial frame without any continuation frames. In order to change the default, you can redefine the `LIMIT` constant in the `Protocol::HTTP2::Continued` module, OR you can pass a different frame class to the framer. |
6 | 6 |
|
| 7 | +## v0.22.1 |
| 8 | + |
| 9 | + - Improved tracing performance by only tracing framer operations when in an active trace context. |
| 10 | + - Updated `protocol-http` dependency version in gemspec. |
| 11 | + - Code modernization and documentation improvements. |
| 12 | + |
7 | 13 | ## v0.22.0 |
8 | 14 |
|
9 | 15 | ### Added Priority Update Frame and Stream Priority |
10 | 16 |
|
11 | 17 | HTTP/2 has deprecated the priority frame and stream dependency tracking. This feature has been effectively removed from the protocol. As a consequence, the internal implementation is greatly simplified. The `Protocol::HTTP2::Stream` class no longer tracks dependencies, and this includes `Stream#send_headers` which no longer takes `priority` as the first argument. |
12 | 18 |
|
13 | 19 | Optional per-request priority can be set using the `priority` header instead, and this value can be manipulated using the priority update frame. |
| 20 | + |
| 21 | +## v0.21.0 |
| 22 | + |
| 23 | +- **Breaking**: Removed support for priority frame and stream dependencies. The `Protocol::HTTP2::Stream` class no longer tracks dependencies, and `Stream#send_headers` no longer takes `priority` as the first argument. This change simplifies the internal implementation significantly as HTTP/2 priority frames have been deprecated in the protocol specification. |
| 24 | + |
| 25 | +## v0.20.0 |
| 26 | + |
| 27 | +- Improved performance of dependency management by avoiding linear search operations. |
| 28 | +- Removed `traces` as a required dependency - it's now optional and only used when explicitly needed. |
| 29 | +- Added better documentation for `maximum_concurrent_streams` setting. |
| 30 | +- Restored 100% test coverage and exposed trace provider for optional tracing support. |
| 31 | + |
| 32 | +## v0.19.4 |
| 33 | + |
| 34 | +- Reduced the number of window update frames sent to improve network efficiency. |
| 35 | + |
| 36 | +## v0.19.3 |
| 37 | + |
| 38 | +- Improved window update frame handling and performance optimizations. |
| 39 | +- Better implementation of `Window#inspect` for debugging. |
| 40 | + |
| 41 | +## v0.19.2 |
| 42 | + |
| 43 | +- Added traces to framer for better debugging and monitoring capabilities. |
| 44 | +- Minor fixes to logging output. |
| 45 | + |
| 46 | +## v0.19.1 |
| 47 | + |
| 48 | +- Performance improvements for synchronized output handling. |
| 49 | +- Extracted `window.rb` into separate module for better organization. |
| 50 | + |
| 51 | +## v0.19.0 |
| 52 | + |
| 53 | +- Removed unused `opened` hook that was never utilized. |
| 54 | +- Improved ASCII art diagram in documentation. |
| 55 | +- Modernized gem structure and dependencies. |
| 56 | +- Moved test fixtures into proper namespace organization. |
| 57 | + |
| 58 | +## v0.18.0 |
| 59 | + |
| 60 | +- Fixed `maximum_connection_streams` reference to use `@remote_settings`. |
| 61 | +- Modernized gem structure and dependencies. |
| 62 | +- Improved flush synchronization - `#flush` is already synchronized. |
| 63 | + |
| 64 | +## v0.17.0 |
| 65 | + |
| 66 | +- Exposed synchronize flush functionality for better concurrency control. |
| 67 | +- Improved single line responsibility in code structure. |
| 68 | +- Enhanced error handling - fail in `Connection#write_frames` if `@framer` is `nil`. |
| 69 | +- Fixed broken test cases. |
| 70 | + |
| 71 | +## v0.16.0 |
| 72 | + |
| 73 | +- Removed unused `bake-github-pages` gem dependency. |
| 74 | +- Modernized gem structure and build process. |
| 75 | +- Updated development dependencies and workflows. |
| 76 | + |
| 77 | +## v0.15.0 |
| 78 | + |
| 79 | +- Achieved 100% test coverage with comprehensive test improvements. |
| 80 | +- Fixed multiple minor bugs discovered through enhanced testing. |
| 81 | +- Modernized gem structure and development workflow. |
| 82 | +- Improved maximum concurrent stream handling - now defined only by local settings. |
| 83 | +- Added missing require statements in version tests. |
| 84 | + |
| 85 | +## v0.14.0 |
| 86 | + |
| 87 | +- Added fuzzing support for the framer to improve robustness. |
| 88 | +- Improved connection closed state determination. |
| 89 | +- Enhanced error handling by ignoring expected errors. |
| 90 | +- Optimized AFL (American Fuzzy Lop) latency handling. |
| 91 | + |
| 92 | +## v0.13.0 |
| 93 | + |
| 94 | +- Added methods for handling state transitions. |
| 95 | +- Removed `pry` and `rake` dependencies for cleaner gem structure. |
| 96 | +- Improved debugging and development workflow. |
| 97 | + |
| 98 | +## v0.12.0 |
| 99 | + |
| 100 | +- Updated supported Ruby versions. |
| 101 | +- Significantly improved flow control handling, allowing connection local window to have desired high water mark. |
| 102 | +- Enhanced window management for better performance. |
| 103 | + |
| 104 | +## v0.11.0 |
| 105 | + |
| 106 | +- Separated stream and priority logic to improve memory efficiency. |
| 107 | +- Added Ruby 2.7 support to continuous integration. |
| 108 | +- Improved code organization and performance. |
| 109 | + |
| 110 | +## v0.10.0 |
| 111 | + |
| 112 | +- Improved child stream handling - don't consider child in future stream priority computations. |
| 113 | +- Enhanced state transitions to cache number of currently active streams. |
| 114 | +- Performance optimizations for stream management. |
| 115 | + |
| 116 | +## v0.9.0 |
| 117 | + |
| 118 | +- Split window handling for sub-classes to improve modularity. |
| 119 | +- Fixed Travis CI badge in documentation. |
| 120 | +- Enhanced window management architecture. |
| 121 | + |
| 122 | +## v0.8.0 |
| 123 | + |
| 124 | +- Added support for synchronizing output to prevent headers from being encoded out of order. |
| 125 | +- Improved header handling reliability and consistency. |
| 126 | + |
| 127 | +## v0.7.0 |
| 128 | + |
| 129 | +- Introduced explicit `StreamError` for stream reset codes. |
| 130 | +- Added `HeaderError` for tracking header-specific problems (e.g., invalid pseudo-headers). |
| 131 | +- Removed `send_failure` method as it was not useful. |
| 132 | +- Improved `header_table_size` handling. |
| 133 | +- Enhanced stream priority handling and parent/child relationships. |
| 134 | +- Better flow control and priority management. |
| 135 | +- Improved debugging output and error validation. |
| 136 | +- Enhanced handling of `end_stream` and connection management. |
| 137 | +- Added stream buffer implementation with window update integration. |
| 138 | +- Implemented basic stream priority handling. |
| 139 | +- Improved goaway frame handling. |
| 140 | + |
| 141 | +## v0.6.0 |
| 142 | + |
| 143 | +- Better handling of GOAWAY frames. |
| 144 | +- Improved connection termination procedures. |
| 145 | + |
| 146 | +## v0.5.0 |
| 147 | + |
| 148 | +- Improved handling of stream creation and push promises. |
| 149 | +- Enhanced stream lifecycle management. |
| 150 | + |
| 151 | +## v0.4.0 |
| 152 | + |
| 153 | +- Improved validation of stream ID and error handling. |
| 154 | +- Enhanced flow control implementation. |
| 155 | +- Better RFC compliance with HTTP/2 specification. |
| 156 | +- Fixed priority frame validation - fail if priority depends on own stream. |
| 157 | +- Improved ping frame length checking. |
| 158 | +- Enhanced logging messages and error reporting. |
| 159 | + |
| 160 | +## v0.3.0 |
| 161 | + |
| 162 | +- Added support for `ENABLE_CONNECT_PROTOCOL` setting. |
| 163 | +- Better handling of underlying IO being closed. |
| 164 | +- Improved connection management and error handling. |
| 165 | +- Enhanced coverage reporting. |
| 166 | + |
| 167 | +## v0.2.1 |
| 168 | + |
| 169 | +- Fixed header length and EOF handling. |
| 170 | +- Improved error boundary conditions. |
| 171 | + |
| 172 | +## v0.2.0 |
| 173 | + |
| 174 | +- Significantly improved error handling throughout the library. |
| 175 | +- Better exception management and error reporting. |
| 176 | + |
| 177 | +## v0.1.1 |
| 178 | + |
| 179 | +- Fixed HPACK usage and integration. |
| 180 | +- Corrected header compression/decompression handling. |
| 181 | + |
| 182 | +## v0.1.0 |
| 183 | + |
| 184 | +- Initial migration of HTTP/2 protocol implementation from `http-protocol`. |
| 185 | +- Basic HTTP/2 frame parsing and generation. |
| 186 | +- Integration with `protocol-hpack` for header compression. |
| 187 | +- Stream management and flow control foundation. |
| 188 | +- Connection lifecycle management. |
| 189 | +- Support for all standard HTTP/2 frame types. |
| 190 | +- Basic client and server implementations. |
0 commit comments