rrhodium

Crates.iorrhodium
lib.rsrrhodium
version1.0.0
created_at2025-08-20 15:26:06.398765+00
updated_at2025-08-21 13:58:28.964847+00
descriptionLib for building modrinth API getters urls
homepage
repositoryhttps://github.com/sergious234/rrhodium
max_upload_size
id1803573
size391,234
Sergious (sergious234)

documentation

README

Rrhodium

Crates.io License Documentation

A Rust library for building URLs for the Modrinth API with type-safe builder patterns and proper facet handling.

Features

  • Type-safe URL building: Compile-time guarantees that your API requests are properly constructed
  • Builder pattern: Fluent interface for constructing complex API queries
  • Facet system: Proper handling of Modrinth's CNF (Conjunctive Normal Form) facet requirements

Installation

Add rrhodium to your Cargo.toml:

[dependencies]
rrhodium = "0.1"

Usage

Basic Search Building

use rrhodium::*;

// Build a search URL for projects
let url = SearchBuilder::new()
    .search_type(SearchType::Projects)
    .game_versions(vec!["1.19.2", "1.19.1"])
    .build_url();

Facet Construcction

use rrhodium::*;

FacetsConjunction::new()
    .and(
        FacetsDisjunction::new()
        .or(Facets::Categories("Technology".to_string()))
    )
    .and(
        FacetsDisjunction::new()
        .or(Facets::Categories("Magic".to_string()))
    )
    .and(
        FacetsDisjunction::new()
        .or(Facets::Version("1.19".to_string()))
        .or(Facets::Version("1.19.1".to_string())),
    )

API Coverage

Currently, rhodium supports Modrinth's GET endpoints for:

  • Project search and retrieval
  • Facet-based filtering
  • Various query parameters

Note: Write operations (create/delete/modify projects) are not currently supported and may not be added in the future.

Commit count: 9

cargo fmt