Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository:becast/Java-WebSocket
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base:master
Choose a base ref
...
head repository:TooTallNate/Java-WebSocket
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare:master
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 8 commits
  • 3 files changed
  • 2 contributors

Commits on Dec 25, 2025

  1. Add new RFC 7962-compliant Per-Message Deflate extension implementation

    Add a reimplementation of the WebSocket Per-Message Deflate extension written from scratch for full RFC 7962 compliance, with the following over the existing implementation: - compliant extension parameters negotiation handling - default operation with context takeover works - fragmented messages are handled correctly (either all fragments are compressed/decompressed or none) - clears RSV1 after decompressing to remove the compression mark - produces the result specified in RFC 7962 section 7.2.3.4 - produces the result specified in RFC 7962 section 7.2.3.6 - uses the extension common name registered for RFC 7962 - has an additional optional constructor parameter "maxFrameSize" to ensure the limit is not exceeded while decompressing already - has an additional API "getCompressionRatio()" to get the effective compression ratio (over all payloads compressed and decompressed) Otherwise, it is fully API compatible with the old implementation. For now, the new implementation lives side by side with the old one, and is named "WebSocketPerMessageDeflateExtension". Add RFC 7962 tests for the new implementation, to validate it produces the expected results for all examples from RFC 7962 section 7.2.3. Add a copy of the unit tests for the old implementation, which verifies the new implementation works the same, except for fixed issues and different defaults.
    @robert-s-ubi
    robert-s-ubi committed Dec 25, 2025
    Configuration menu
    Copy the full SHA
    f6a46beView commit details
    Browse the repository at this point in the history

Commits on Jan 7, 2026

  1. Replace old PerMessageDeflateExtension with new implementation

    Instead of adding WebSocketPerMessageDeflateExtension side by side with the old PerMessageDeflateExtension, rename the new implementation to the old name to replace it.
    @robert-s-ubi
    robert-s-ubi committed Jan 7, 2026
    Configuration menu
    Copy the full SHA
    0ece865View commit details
    Browse the repository at this point in the history

Commits on Jan 9, 2026

  1. Fix PerMessageDeflatExtension RFC 7692 number typos

    RFC 7692 was often mistyped as RFC 7962. Fix this.
    @robert-s-ubi
    robert-s-ubi committed Jan 9, 2026
    Configuration menu
    Copy the full SHA
    2636218View commit details
    Browse the repository at this point in the history
  2. Rename PerMessageDeflateExtension maxFrameSize to maxFragmentSize

    The PerMessageDeflationExtension's optional maxFrameSize constructor parameter is applied to the size of a fragment while decompressing, and not to the complete frame size (that size is checked after passing the decompressed fragment), so rename the parameter to what it actually is. Add Javadoc to the full-parameter constructor method.
    @robert-s-ubi
    robert-s-ubi committed Jan 9, 2026
    Configuration menu
    Copy the full SHA
    238fc82View commit details
    Browse the repository at this point in the history
  3. Remove PerMessageDeflateExtension#getCompressionRatio()

    This new API was intended to be called by library users, but could never have worked, as it would need to be called on the class instance which is actually processing frames, but that instance is created internally in the library using copyInstance() and thus inaccessible to the library users. Remove the API and the stats kept for it.
    @robert-s-ubi
    robert-s-ubi committed Jan 9, 2026
    Configuration menu
    Copy the full SHA
    c465a9aView commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    4da0258View commit details
    Browse the repository at this point in the history
  5. Document how to use PerMessageDeflateExtension#getCompressionRatio()

    The PerMessageDeflateExtension#getCompressionRatio() API needs to be called on the class instance used by the library. Add Javadoc explaining how that instance can be retrieved.
    @robert-s-ubi
    robert-s-ubi committed Jan 9, 2026
    Configuration menu
    Copy the full SHA
    a27ba48View commit details
    Browse the repository at this point in the history

Commits on Jan 13, 2026

  1. Merge pull requestTooTallNate#1498from ubitricity/add_new_websocket…

    …permessagedeflate_extension Add new RFC 7692-compliant Per-Message Deflate extension implementation
    @marci4
    marci4 authored Jan 13, 2026
    Configuration menu
    Copy the full SHA
    afeacbfView commit details
    Browse the repository at this point in the history
Loading