Repository navigation
v0.1.0 — Initial release
·
5 commits
to main
since this release
First published release. Thin Ruby binding over the tsip-parser Rust crate (pinned to ~> 0.1, resolves to 0.1.1).
Features
TsipParser::Uri.parse(str)— RFC 3261 §19.1 SIP / SIPS / tel URI parserTsipParser::Address.parse(str)— RFC 3261 §25.1 name-addr / addr-specTsipParser::ParseError(subclass ofArgumentError) — tsip-core-compatible error pathUri.parse_many/Address.parse_many— batch FFIuri.param(k)/uri.header(k)/address.param(k)— direct Vec lookup, no Hash materialization- Params / headers memoized on the Ruby side so
uri.params["t"] = "tls"round-trips throughto_scorrectly
Performance
M1 macOS, Ruby 4.0.1, release build:
| endpoint | tsip_parser | tsip-core | speedup |
|---|---|---|---|
Uri.parse |
595k ips | 40k ips | 14.8× |
Address.parse |
672k ips | 41k ips | 16.6× |
Clears the 10× target from the project's HANDOVER doc.
Install
gem install tsip_parserRubyGems: https://rubygems.org/gems/tsip_parser/versions/0.1.0