qubit-lock 0.2.0

Lock utilities library providing synchronous, asynchronous, and monitor-based locking primitives
Documentation

Qubit Lock

CircleCI Coverage Status Crates.io Rust License 中文文档

Lock-focused utilities for the Qubit Rust libraries. The crate provides synchronous and asynchronous lock wrappers plus monitor-style coordination.

Features

  • ArcMutex, ArcRwLock, ArcStdMutex: synchronous lock wrappers with Arc built in.
  • ArcAsyncMutex, ArcAsyncRwLock: Tokio-based asynchronous lock wrappers.
  • Monitor, ArcMonitor, MonitorGuard: condition-based state coordination.
  • Closure-based APIs that keep lock acquisition and release scoped to one call.

Installation

[dependencies]
qubit-lock = "0.2.0"

Quick Start

Synchronous lock

use qubit_lock::ArcMutex;

fn main() {
    let counter = ArcMutex::new(0);
    counter.write(|value| *value += 1);
    assert_eq!(counter.read(|value| *value), 1);
}

Monitor

use qubit_lock::lock::ArcMonitor;

fn main() {
    let monitor = ArcMonitor::new(vec![1, 2, 3]);
    let length = monitor.read(|items| items.len());
    assert_eq!(length, 3);
}

Project Layout

  • src/lock: lock traits and lock wrappers.
  • src/monitor: Monitor / ArcMonitor and related condition-variable primitives.
  • tests/lock: lock behavior tests.
  • tests/monitor: monitor behavior tests.
  • tests/docs: README and doctext consistency tests.

Quality Checks

./align-ci.sh
./ci-check.sh
./coverage.sh json

License

Apache-2.0