#async #workspace

workspacer-crate

Efficient management of Rust workspaces with asynchronous operations, offering functionalities for crate initialization, integrity validation, version management, and serialization

7 releases (4 breaking)

Uses new Rust 2024

0.5.2 Jul 13, 2025
0.5.1 Apr 1, 2025
0.5.0 Feb 21, 2025
0.4.0 Feb 21, 2025
0.1.0 Feb 9, 2025

#221 in #workspace

Download history 167/week @ 2025-09-16 225/week @ 2025-09-23 245/week @ 2025-09-30 66/week @ 2025-10-07 315/week @ 2025-10-14 213/week @ 2025-10-21 180/week @ 2025-10-28 203/week @ 2025-11-04 236/week @ 2025-11-11 192/week @ 2025-11-18 177/week @ 2025-11-25 287/week @ 2025-12-02 147/week @ 2025-12-09 216/week @ 2025-12-16 212/week @ 2025-12-23 208/week @ 2025-12-30

805 downloads per month
Used in 76 crates (35 directly)

MIT/Apache

445KB
5K SLoC

workspacer-crate

workspacer-crate is a comprehensive utility for managing Rust workspaces with refined asynchronous handling and intricate management of workspace constructs. This crate is tailored for developers who require detailed control over crate initialization, integrity validation, version management, and more.

Features

  • Crate Initialization: Efficiently initialize crates within a workspace, complete with optional README, source files, and test files.

  • Asynchronous Operations: Utilize asynchronous mechanisms to manage concurrent operations, ensuring thread-safe access and modification of the Cargo.toml and associated paths.

  • Version and Integrity Management: Safeguard version consistency and workspace integrity with automated checks for required files such as Cargo.toml and source files.

  • Serialize and Deserialize Support: Offers serialization for crate handles, facilitating network transmission or persistent storage.

Usage

Incorporate workspacer-crate into your Rust project to streamline workspace management:

use workspacer_crate::CrateHandle;

async fn main() {
    // Example usage of CrateHandle
    let crate_handle = CrateHandle::new("/path/to/crate").await.unwrap();
    let version = crate_handle.version().unwrap();
    println!("Crate version: {}", version);
}

Installation

Add to your Cargo.toml:

[dependencies]
workspacer-crate = "0.5.0"

Contributions

Contributions are welcome! Please look at the issues on GitHub.

License

This project is licensed under the MIT OR Apache-2.0 licenses.

Dependencies

~44–84MB
~1.5M SLoC