Skip to main content

Crate soar_registry

Crate soar_registry 

Source
Expand description

Registry management for the soar package manager.

This crate provides functionality for fetching, processing, and managing package metadata from remote repositories.

§Overview

The crate handles metadata sources:

  • Repositories: Standard package repositories containing package metadata

Metadata can be provided in two formats:

  • SQLite databases (.sdb files, optionally zstd-compressed)
  • JSON files containing package arrays

§Example

use soar_registry::{fetch_metadata, MetadataContent};
use soar_config::repository::Repository;

async fn sync_repo(repo: &Repository, existing_etag: Option<String>) -> soar_registry::Result<()> {
    if let Some((etag, content)) = fetch_metadata(repo, false, existing_etag).await? {
        match content {
            MetadataContent::SqliteDb(bytes) => {
                // Write SQLite database to disk
            }
            MetadataContent::Json(packages) => {
                // Process JSON packages into a database
            }
        }
    }
    Ok(())
}

Re-exports§

pub use error::ErrorContext;
pub use error::RegistryError;
pub use error::Result;
pub use metadata::fetch_metadata;
pub use metadata::parse_index;
pub use metadata::process_metadata_content;
pub use metadata::write_metadata_db;
pub use metadata::MetadataContent;
pub use metadata::SQLITE_MAGIC_BYTES;
pub use metadata::SUPPORTED_FORMAT;
pub use metadata::ZST_MAGIC_BYTES;
pub use package::RemotePackage;

Modules§

error
Error types for the registry crate.
metadata
Metadata fetching and processing for package repositories.
package
Remote package metadata structures.