Skip to content

Machine elaborate bijou32 and bijou128#12

Merged
expede merged 13 commits into
mainfrom
expand128
Jun 3, 2026
Merged

Machine elaborate bijou32 and bijou128#12
expede merged 13 commits into
mainfrom
expand128

Conversation

@expede

@expede expede commented May 28, 2026

Copy link
Copy Markdown
Member

...and manually check

@expede expede marked this pull request as ready for review May 28, 2026 01:25
Copilot AI review requested due to automatic review settings May 28, 2026 01:25

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR adds two new sibling crates to the bijou family — bijou32 (narrower, u32, max 5 bytes, tag threshold 252) and bijou128 (wider, u128, max 17 bytes, tag threshold 240) — together with their wasm/JS counterparts (bijou32_wasm, bijou128_wasm). It also updates the workspace metadata, dev tooling (Nix flake commands), CI workflows, and the bijou64 spec to document the new width variants and the per-tier tag-threshold choice. The three width variants are intentionally not wire-compatible; each picks the widest tag threshold its tier count permits to maximize the single-byte tier.

Changes:

  • New bijou32 and bijou128 Rust crates (lib + SPEC + README + examples + tests), mirroring the bijou64 design with adapted tier counts and offsets.
  • New bijou32_wasm and bijou128_wasm crates with wasm-bindgen bindings (number-based for u32, bigint-based for u128), plus Node Mocha tests and Playwright cross-browser tests.
  • Workspace, Nix flake, and CI updates: members/dependencies wired in; bodge:32, bodge:128, test:js:32*, test:js:128* commands; CI matrix expanded over all three wasm crates.

Reviewed changes

Copilot reviewed 42 out of 45 changed files in this pull request and generated no comments.

Show a summary per file
File Description
README.md Documents the three-crate family, wire-incompatibility, and the differing JS boundary types.
Cargo.toml Registers the four new crates as workspace members and dependencies.
Cargo.lock Records resolved versions for the new crates.
flake.nix Adds bodge:32/bodge:128 build commands, test:js:32*/test:js:128* runners, and extends test:no_std + ci over all three widths.
bijou64/SPEC.md Replaces "Future Extensions" with a "Width Variants" section explaining per-variant tag thresholds.
bijou32/{Cargo.toml,SPEC.md,README.md,src/lib.rs,examples/decode.rs} New u32 crate: spec, docs, encode/decode/iterator/EncodedBytes API, and a full test suite.
bijou128/{Cargo.toml,SPEC.md,README.md,examples/decode.rs} New u128 crate package, spec, docs, and example (lib source not shown in diff).
bijou32_wasm/* Wasm bindings using JS number; src (lib/encode/decode), Rust wasm tests, Mocha+Playwright JS tests, package metadata, tsconfig, mocharc.
bijou128_wasm/* Wasm bindings using JS bigint; src (lib/encode/decode), Rust wasm tests, Mocha+Playwright JS tests, package metadata, tsconfig, mocharc.
.github/workflows/test-wasm.yml Matrixes the wasm-pack and JS-package jobs over bijou32_wasm, bijou64_wasm, bijou128_wasm.
.github/workflows/test-all-features.yml Adds no_std checks for bijou32 and bijou128.
Files not reviewed (2)
  • bijou128_wasm/pnpm-lock.yaml: Language not supported
  • bijou32_wasm/pnpm-lock.yaml: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 54 out of 57 changed files in this pull request and generated no new comments.

Files not reviewed (2)
  • bijou128_wasm/pnpm-lock.yaml: Language not supported
  • bijou32_wasm/pnpm-lock.yaml: Language not supported

@expede expede merged commit 48afa18 into main Jun 3, 2026
22 checks passed
@expede expede deleted the expand128 branch June 3, 2026 08:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants