peasy-compress 0.2.0

Rust client for PeasyCompress — file compression tools, glossary, and guides API
Documentation

peasy-compress

crates.io docs.rs License: MIT

Async Rust client for the Peasy Compress API — ZIP, TAR, gzip, and brotli compression and extraction. Built with reqwest, serde, and tokio.

Built from Peasy Tools, a free online toolkit with compression tools for creating and extracting ZIP, TAR, gzip, and brotli archives.

Try the interactive tools at peasytools.comCompression Tools, Glossary, Guides

Install

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

Or via cargo:

cargo add peasy-compress

Quick Start

use peasy_compress::Client;

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

    // List available compression 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 Peasy Tools REST API with strongly-typed Rust structs using serde deserialization.

use peasy_compress::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_compress::ListOptions {
        page: Some(1),
        limit: Some(10),
        search: Some("zip".into()),
        ..Default::default()
    };
    let tools = client.list_tools(&opts).await?;

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

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

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

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

    // List format conversions
    let conversions = client.list_conversions(&peasy_compress::ListConversionsOptions {
        source: Some("zip".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 peasytools.com/developers/. OpenAPI 3.1.0 spec: peasytools.com/api/openapi.json.

Learn More

Also Available

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

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