#messaging #matrix #famedly

deprecated matrix_uri

A crate for parsing Matrix URIs according to both matrix.to and MSC2312

2 releases

0.1.1 Mar 28, 2022
0.1.0 Mar 17, 2021

#163 in #messaging

AGPL-3.0-only

26KB
563 lines

matrix_uri

Coverage Pipeline
coverage report pipeline status

Deprecation Notice

Ruma has support for parsing both types of Matrix URIs as of version 0.5.0, thus this crate is now deprecated.

Original Description

A crate for building and parsing Matrix URIs according to both the matrix.to specification and also MSC2312 (matrix://).

Optionally provides conversion to types from ruma_identifiers with the ruma feature

Usage

Building

let uri = crate::MatrixUri::new(
            crate::MatrixId::new(crate::IdType::UserId, String::from("cute:some.url")),
            None,
            None,
            Some(vec![String::from("headpat.services"), String::from("cute.local")]),
            Some(crate::MatrixUriAction::Chat),
        )
        .unwrap();

println!("{} with {}", uri.action().unwrap().to_string(), uri.mxid.to_string()); // `chat with @cute:some.url`
println!("{}", uri.matrix_uri_string()); // `matrix:u/cute%3Asome.url?action=chat&via=headpat.services&via=cute.local`
println!("{}", uri.matrix_to_string()); // `https://matrix.to/#/%40cute%3Asome.url?action=chat&via=headpat.services&via=cute.local`

Parsing

let uri = matrix_uri::MatrixUri::from_str("matrix:u/her:example.org?action=chat").unwrap();

println!("{} - {:?}", uri.mxid.to_string(), uri.action().unwrap()); // `@her:example.org - Chat`

Docs

Can be viewed from source by running cargo doc --open

Pre-commit usage

  1. If not installed, install with your package manager, or pip install --user pre-commit
  2. Run pre-commit autoupdate to update the pre-commit config to use the newest template
  3. Run pre-commit install to install the pre-commit hooks to your local environment

Dependencies

~3.5–5MB
~120K SLoC