Expand description
§finger-protocol
Finger (RFC 1288, port 79) and its successor WebFinger (RFC 7033), which honours it by name.
Both answer the same question, thirty years apart: who is this person?
Finger answers with whatever text the host felt like printing. WebFinger
answers with a JSON Resource Descriptor, which is why it, and not finger,
is what resolves @alice@example.social on the fediverse.
§Two protocols, two features
| Module | Feature | Pulls | |
|---|---|---|---|
| Finger, RFC 1288 | client | client | tokio, url |
| WebFinger, RFC 7033 | webfinger | webfinger | serde, serde_json, percent-encoding |
Both are on by default. Take default-features = false with just one when
the other is dead weight.
§WebFinger without an HTTP client
WebFinger rides on HTTPS and this crate deliberately contains no HTTP
stack: it builds the request URL and parses the response, and the GET
itself belongs to the caller, who already has an HTTP client and opinions
about timeouts, redirects, and TLS. See webfinger.
Fingering a host is client::fetch, documented on that module so the
example stays honest when the client feature is off.
Re-exports§
pub use client::ClientError;pub use client::DEFAULT_PORT;pub use client::Query;pub use client::Response;pub use client::fetch;pub use client::query;pub use webfinger::Jrd;pub use webfinger::Link;pub use webfinger::MEDIA_TYPE;pub use webfinger::acct;pub use webfinger::request_url;