Releases: hocestnonsatis/sorug
Releases · hocestnonsatis/sorug
Release list
v0.6.2
v0.6.1
v0.6.0
v0.5.0
v0.4.0 — file path, unique origins, FFI binaries
Summary
from_file_path/from_directory_path/to_file_path(std)- Unique opaque origins:
Origin::Opaque(OpaqueOrigin)+Origin::new_opaque()(breaking vs 0.3 equality) set_ip_host,socket_addrs,SearchParams::sort,parse_with_params- FFI:
sorug_join,sorug_origin, core setters; mutation invalidates getter pointers - Prebuilt
sorug-ffiarchives attached byffi-release.yml(not on crates.io) - WPT: parser 891/891, setters 278/278
Install
sorug = "0.4.0"crates.io publish via Trusted Publishing (OIDC) on tag v0.4.0.
v0.3.0 — join/path/query, serde/http, IDNA UCD
Summary
- Relative URL APIs:
join,make_relative,path_segments/path_segments_mut,query_pairs/query_pairs_mut - Typed
Host(+Host::parse), rust-url-shaped getters,Hash/Ord,set_port(Option<u16>) - Optional features:
serde,http(impliesstd);no_std+allocwithdefault-features = false - IDNA: UTS #46 membership from vendored Unicode 16.0.0 UCD +
data/idna_overlay.txt(Node/WPT); SimpleIdentity fast path - C FFI workspace member
sorug-ffi(in-repo; not on crates.io yet) - WPT: parser 891/891, setters 278/278
Install
sorug = "0.3.0"Benchmarks (indicative, 2026-08-04)
| Workload | sorug | ada | servo |
|---|---|---|---|
| Fast Path ASCII | 32.7 ns | 31.2 ns | 96.5 ns |
| Complex Query | 55.6 ns | 140 ns | 199 ns |
| IDNA / Punycode | 190 ns | 244 ns | 226 ns |
| File Edge Case | 31.2 ns | 91.7 ns | 126 ns |
crates.io publish is triggered by the v0.3.0 tag via GitHub Actions.
v0.1.1 — IDNA range tables + fuzz campaign lock-in
Highlights
- Compile-time IDNA CheckBidi / UTS #46 range tables (
data/idna_ranges.txt→build.rs) - Fuzz campaign lock-in: harness, seed corpus,
tests/fuzz_regressions.rs - WPT 891 / 891; 15m sanity fuzz clean
crates.io
https://crates.io/crates/sorug/0.1.1
sorug = "0.1.1"v0.1.0 — first crates.io release
sorug 0.1.0
First public release on crates.io.
Highlights
- Zero-copy / CoW WHATWG URL parser
- SIMD + SWAR fast path; lightweight in-crate Punycode
- 891 / 891 WPT
urltestdata forbid(unsafe_code)
Install
cargo add sorugsorug = "0.1"Early 0.1.x release — APIs may still change before 1.0.