Webfinger-rs
A rust crate implementing the Webfinger protocol (RFC 7033)
Motivation
Existing crates have not been updated in some time and have a license that makes them difficult to use within other products (GPL-3.0). They are also transport library specific. In contrast this library is MIT / Apache licensed, and will be agnostic to the choice of request / server library as it builds on the types in the http crate with conversions and helper methods to make this easy.
Features / TODO list
- Client side types
- Reqwest interaction
- Server side types
- Axum integration
- Actix integration
Usage
cargo add webfinger-rs
let request = Request ;
let response = request.fetcht.await?;
The library also has a cli that can be useful to test WebFinger servers.
cargo install webfinger-cli
webfinger fetch acct:carol@example.com example.com --rel http://openid.net/specs/connect/1.0/issuer
Stability
This library is in early days and will have semver breaking changes in the 0.0.x releases. Once 0.1.0 is released, semver breaking changes will bump the minor version.
License
Copyright (c) 2024 Josh McKinney
This project is licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or https://apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
See CONTRIBUTING.md.