Skip to main content

Crate fontsource_downloader

Crate fontsource_downloader 

Source
Expand description

§fontsource-downloader

Python Rust codecov docs.rs Crates.io PyPI

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-face rules. 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§

FamilyCacheInfo
The cached metadata for a single font family.
FontListCacheInfo
The cached list of font families.
FontQuery
A struct describing the desired font(s) to query.
FontSourceClient
A client for downloading (and caching) font files from Fontsource.
FontSourceFamily
The metadata for a single font family.
QueryBuilder
A builder for constructing a FontQuery.

Enums§

FontFileType
An enum representing supported downloadable font file types.
Weight
An enum representing the standard font weights.