webfinger-rs 0.0.2

A WebFinger client and library written in Rust.
Documentation

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 = webfinger::Request {
    host: "example.com".parse()?,
    resource: "acct:carol@example.com",
    rel: "http://openid.net/specs/connect/1.0/issuer",
};
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:

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.