forked from continuwuation/resolvematrix
A handy Matrix server resolution library
- Rust 100%
Returns host:port formatted string of the resolved destination server. Differs from Resolution::sni_hostname() in that it returns the target server and not the SNI hostname. |
||
|---|---|---|
| examples | ||
| src | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| Cargo.lock | ||
| Cargo.toml | ||
| committed.toml | ||
| LICENSE | ||
| README.md | ||
| README.tpl | ||
resolvematrix
resolvematrix is a Rust library providing the ability to resolve Matrix server-to-server endpoints from the server name.
It conforms to the Server Discovery section in the Matrix specification.
The library is tested against the resolvematrix.dev suite and live domains.
This library depends on hickory-resolver, reqwest, serde and (indirectly) tokio.
Usage
cargo add resolvematrix
Example
use resolvematrix::server::MatrixResolver;
// Create a new resolver
let resolver = Arc::new(MatrixResolver::new()?);
// Resolve a server name
let server_name = "matrix.org";
let resolution = resolver.resolve_server(server_name).await?;
eprintln!("Resolved server: {resolution:?}");
let client = resolver.create_client().unwrap();
let url = format!("{}/_matrix/federation/v1/version", resolution.base_url());
let response = client.get(&url).send().await;
License: MPL-2.0