Skip to content

v0.1.0 — Initial release

Choose a tag to compare

@team-milestone-alfonso team-milestone-alfonso released this 19 Apr 06:56
· 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 parser
  • TsipParser::Address.parse(str) — RFC 3261 §25.1 name-addr / addr-spec
  • TsipParser::ParseError (subclass of ArgumentError) — tsip-core-compatible error path
  • Uri.parse_many / Address.parse_many — batch FFI
  • uri.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 through to_s correctly

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_parser

RubyGems: https://rubygems.org/gems/tsip_parser/versions/0.1.0