Skip to content

Plume-org/webfinger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WebFinger Crates.io Libraries.io dependency status for GitHub repo Codecov Build Status

A crate to help you fetch and serve WebFinger resources.

Examples

Fetching a resource:

use webfinger::resolve; fn main() { let res = resolve("acct:test@example.org", true).expect("Error while fetching resource"); println!("Places to get more informations about {}:", res.subject); for link in res.links.into_iter() { println!("- {}", link.href); } }

Serving resources:

use webfinger::Resolver; pub struct MyResolver; impl Resolver<DatabaseConnection> for MyResolver { fn instance_domain<'a>() -> &'a str { "instance.tld" } fn find(acct: String, db: DatabaseConnection) -> Result<Webfinger, ResolverError> { if let Some(user) = db.find_user_by_name(acct) { Ok(Webfinger { subject: acct.clone(), aliases: vec![acct.clone()], links: vec![ Link { rel: "http://webfinger.net/rel/profile-page".to_string(), mime_type: None, href: user.profile_url() } ] }) } else { Err(ResolverError::NotFound) } } } fn main() { // Start a web server and map /.well-known/webfinger to a function calling MyResolver::endpoint }

About

A crate to help you fetch and serve WebFinger resources

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors