peasy-css 0.2.0

Rust client for PeasyCSS — CSS tools, glossary, and guides API
Documentation

peasy-css

crates.io docs.rs License: MIT

Async Rust client for the PeasyCSS API — minify, format, and analyze CSS with gradient, shadow, flexbox, and grid generators. Built with reqwest, serde, and tokio.

Built from PeasyCSS, a free online CSS toolkit with tools for minifying, formatting, analyzing, and generating CSS code including gradients, shadows, and layouts.

Try the interactive tools at peasycss.comCSS Tools, CSS Glossary, CSS Guides

Install

[dependencies]
peasy-css = "0.2.0"
tokio = { version = "1", features = ["full"] }

Or via cargo:

cargo add peasy-css

Quick Start

use peasy_css::Client;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = Client::new();

    // List available CSS tools
    let tools = client.list_tools(&Default::default()).await?;
    for tool in &tools.results {
        println!("{}: {}", tool.name, tool.description);
    }

    Ok(())
}

API Client

The client wraps the PeasyCSS REST API with strongly-typed Rust structs using serde deserialization.

use peasy_css::Client;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = Client::new();
    // Or with a custom base URL:
    // let client = Client::with_base_url("https://custom.example.com");

    // List tools with filters
    let opts = peasy_css::ListOptions {
        page: Some(1),
        limit: Some(10),
        search: Some("minify".into()),
        ..Default::default()
    };
    let tools = client.list_tools(&opts).await?;

    // Get a specific tool
    let tool = client.get_tool("css-minify").await?;
    println!("{}: {}", tool.name, tool.description);

    // Search across all content
    let results = client.search("minify", Some(20)).await?;
    println!("Found {} tools", results.results.tools.len());

    // Browse the glossary
    let glossary = client.list_glossary(&peasy_css::ListOptions {
        search: Some("flexbox".into()),
        ..Default::default()
    }).await?;
    for term in &glossary.results {
        println!("{}: {}", term.term, term.definition);
    }

    // Discover guides
    let guides = client.list_guides(&peasy_css::ListGuidesOptions {
        category: Some("css".into()),
        ..Default::default()
    }).await?;
    for guide in &guides.results {
        println!("{} ({})", guide.title, guide.audience_level);
    }

    // List format conversions
    let conversions = client.list_conversions(&peasy_css::ListConversionsOptions {
        source: Some("css".into()),
        ..Default::default()
    }).await?;

    Ok(())
}

Available Methods

Method Description
list_tools(&opts) List tools (paginated, filterable)
get_tool(slug) Get tool by slug
list_categories(&opts) List tool categories
list_formats(&opts) List file formats
get_format(slug) Get format by slug
list_conversions(&opts) List format conversions
list_glossary(&opts) List glossary terms
get_glossary_term(slug) Get glossary term
list_guides(&opts) List guides
get_guide(slug) Get guide by slug
list_use_cases(&opts) List use cases
search(query, limit) Search across all content
list_sites() List Peasy sites
openapi_spec() Get OpenAPI specification

Full API documentation at peasycss.com/developers/. OpenAPI 3.1.0 spec: peasycss.com/api/openapi.json.

Learn More

Also Available

Language Package Install
Python peasy-css pip install "peasy-css[all]"
TypeScript peasy-css npm install peasy-css
Go peasy-css-go go get github.com/peasytools/peasy-css-go
Ruby peasy-css gem install peasy-css

Peasy Developer Tools

Part of the Peasy Tools open-source developer ecosystem.

Package PyPI npm crates.io Description
peasy-pdf PyPI npm crate PDF merge, split, rotate, compress — peasypdf.com
peasy-image PyPI npm crate Image resize, crop, convert, compress — peasyimage.com
peasy-audio PyPI npm crate Audio trim, merge, convert, normalize — peasyaudio.com
peasy-video PyPI npm crate Video trim, resize, thumbnails, GIF — peasyvideo.com
peasy-css PyPI npm crate CSS minify, format, analyze — peasycss.com
peasy-compress PyPI npm crate ZIP, TAR, gzip compression — peasytools.com
peasy-document PyPI npm crate Markdown, HTML, CSV, JSON conversion — peasyformats.com
peasytext PyPI npm crate Text case conversion, slugify, word count — peasytext.com

License

MIT