Skip to content
This repository was archived by the owner on Jan 2, 2026. It is now read-only.

v0.10.0#48

Merged
bitfl0wer merged 277 commits intomainfrom
dev/v0.10
Mar 30, 2025
Merged

v0.10.0#48
bitfl0wer merged 277 commits intomainfrom
dev/v0.10

Conversation

@bitfl0wer
Copy link
Copy Markdown
Member

@bitfl0wer bitfl0wer commented Feb 23, 2025

Draft pull request for release v0.10.0 to receive status and coverage information through GH Actions. Closes #44 and #45

Release v0.10

The tenth release of the polyproto crate is the biggest one yet. It touches almost all areas of the source code and brings numerous improvements, bug fixes and additions.

Most notably, v0.10 has been updated to be almost fully compliant with Beta 1 of the polyproto specification! All the API routes, types and the most important behaviors are there and available for you to tinker and prototype with!

Some more advanced features are missing, though. Notably, v0.10 lacks zstd WebSocket compression support and advanced migrations features, such as performing and verifying migrations out of the box. Developers and tinkerers can add this functionality themselves, as all the needed "parts" for it exist (API routes, verification behaviors, etc.)—there just isn't one, simple function you can call yet.

Things like these are planned for the v0.11 and v0.12 releases.

Gateway

This version ships polyproto WebSocket gateway client functionality, gated behind the gateway crate feature. The implementation of this feature is super backend-agnostic—though, for now, we have sealed the needed traits, and are only shipping a tokio-tungstenite backend for testing.

The gateway handles establishing a connection to the server, sending regular heartbeats at the specified interval and responding to Opcode 11—the manual heartbeat request.

Apart from the Hello payload, library consumers can easily get access to all messages received from the gateway by calling subscribe() on the internal tokio::sync::watch::Sender<GatewayMessage>. This means that this crate handles only the bare necessities of connecting to the gateway, and that you are free to handle incoming messages however you would like to. Our GatewayMessage type is .into() and From::<>-compatible with tokio_tungstenite::tungstenite::Message, so that you are not locked into using our types, should you not want that.

bitfl0wer added 23 commits March 25, 2025 21:02
* Expand ignored file patterns

* add wasm_bindgen feature

* add wasm_bindgen related optimizations and module

* add mod.rs

* reconcile lib feature

* cargo wasm setup

* add wasm-pack-helper script

* add files from polyproto-js

* reformat file

* update wasm settings

* bindgen headaches galore!!!!!!!!

* add description for wasm module

* add no_wee_alloc feature to disable wee_alloc if wasm_bindgen is instrumented through another crate

* add license headers
@bitfl0wer bitfl0wer marked this pull request as ready for review March 30, 2025 11:26
@bitfl0wer bitfl0wer requested a review from Copilot March 30, 2025 11:26
@bitfl0wer
Copy link
Copy Markdown
Member Author

i just wanted to try it out dont grill me

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request prepares the v0.10.0 release by updating version numbers, adding new features such as the WebSocket gateway client, and refining examples and workflows. Key changes include:

  • Version and dependency updates in Cargo.toml with adjustments to features (e.g. enabling serde, gateway, and WASM support).
  • Updates in the example files to showcase new functionalities such as session creation in the HTTP API example and extended signature/key implementations.
  • Enhancements and additions to documentation and GitHub workflows, including new license, coverage, and WASM build/test configurations.

Reviewed Changes

Copilot reviewed 74 out of 83 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
headaches.md Added a note on challenges with wasm-bindgen and Rust TS/JS bindgen.
examples/http_api.rs Refactored the HTTP client example to leverage sessions and update the test entry point.
examples/ed25519_from_der.rs Introduced consistency improvements and added an as_bytes implementation.
examples/ed25519_cert.rs Made minor adjustments to the signature trait implementation and formatting.
examples/ed25519_basic.rs Extended debug output to include public key OID information.
README.md Updated documentation to reflect the new features and instructions.
Cargo.toml Bumped version, updated Rust edition and dependencies/features.
.github/workflows/wasm.yml Added workflow for building and testing the wasm target.
.github/workflows/license-header.yml Added license header check to GitHub workflows.
.github/workflows/coverage.yml Updated tarpaulin command with feature flags and improved options.
.github/workflows/build_and_test.yml Updated toolchain installation and nextest configuration.
Files not reviewed (9)
  • .github/license-check/config.json: Language not supported
  • .github/license-check/header-mpl-2.0.txt: Language not supported
  • .vscode/settings.json: Language not supported
  • gen-coverage.sh: Language not supported
  • scripts/check-license-header.sh: Language not supported
  • scripts/fmt.sh: Language not supported
  • scripts/gen-coverage.sh: Language not supported
  • scripts/test.sh: Language not supported
  • scripts/wasm-pack-helper: Language not supported

@bitfl0wer
Copy link
Copy Markdown
Member Author

how faintly helpful

@bitfl0wer bitfl0wer merged commit b5ba683 into main Mar 30, 2025
5 checks passed
@bitfl0wer bitfl0wer deleted the dev/v0.10 branch March 30, 2025 11:29
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update crate to match v1.0-beta.1 of p2-core

2 participants