Expand description
§fontsource-downloader
A library to download (and cache) fonts with fontsource REST API.
§Library Features
- Download a batch of fonts per family (based on the given query).
- Asynchronous downloads with true parallelism.
- Generate CSS
@font-facerules. Both CDN URLs and self-hosting (relative path) URLs are supported. Self-hosted font files can be optionally copied from cache to a given destination directory. - Caching enabled (with option to customize cache root dir) for both metadata and font files.
- Minimal debug logs (when enabled).
Rust consumers get to choose their desired TLS backend. Only the required features of the reqwest crate are enabled.
§Examples
§Python
import asyncio # the only supported async runtime in python
from pathlib import Path
# configure logging before importing this library
from fontsource_downloader import (
FontQuery, FontSourceClient, Weight
)
client = FontSourceClient()
query = FontQuery(
family="Roboto",
weights=[Weight(400)],
)
font_files: list[Path] = await client.download_font(query)
# do what you want with the cached font files ...§Rust
use std::path::PathBuf;
use fontsource_downloader::{
FontQuery, FontSourceClient, QueryBuilder, Weight,
};
let client = FontSourceClient::new().unwrap();
let query: FontQuery = QueryBuilder::new("Roboto")
.with_weight(Weight::from(400))
.build();
let font_files: Vec<PathBuf> = client
.download_font(&query)
.await
.unwrap();
// do what you want with the cached font files ...Modules§
- error
- Error types for FontSource client operations.
Structs§
- Family
Cache Info - The cached metadata for a single font family.
- Font
List Cache Info - The cached list of font families.
- Font
Query - A struct describing the desired font(s) to query.
- Font
Source Client - A client for downloading (and caching) font files from Fontsource.
- Font
Source Family - The metadata for a single font family.
- Query
Builder - A builder for constructing a
FontQuery.
Enums§
- Font
File Type - An enum representing supported downloadable font file types.
- Weight
- An enum representing the standard font weights.