Library Usage
You can use lychee as a library for your own projects! The documentation for the library can be found here.
Here is a “hello world” example:
use lychee_lib::Result;
#[tokio::main]async fn main() -> Result<()> { let response = lychee_lib::check("https://github.com/lycheeverse/lychee").await?; println!("{response}"); Ok(())}
This is equivalent to the following snippet, in which we build our own client:
use lychee_lib::{ClientBuilder, Result, Status};
#[tokio::main]async fn main() -> Result<()> { let client = ClientBuilder::default().client()?; let response = client.check("https://github.com/lycheeverse/lychee").await?; assert!(response.status().is_success()); Ok(())}
The client builder is very customizable:
let client = lychee_lib::ClientBuilder::builder() .includes(includes) .excludes(excludes) .max_redirects(cfg.max_redirects) .user_agent(cfg.user_agent) .allow_insecure(cfg.insecure) .custom_headers(headers) .method(method) .timeout(timeout) .github_token(cfg.github_token) .scheme(cfg.scheme) .accepted(accepted) .build() .client()?;
All options that you set will be used for all link checks. See the builder documentation for all options. For more information, check out the examples folder.