#mutex #vst #thread-synchronization #locking

aloe-vst-thread

Aloe VST Thread provides robust synchronization and locking for VST plugin development, supporting multi-platform operations with critical sections and mutexes. This crate is a translation of the c++ juce module serving the same function.

1 unstable release

Uses new Rust 2024

new 0.1.2 Apr 3, 2025

#7 in #thread-synchronization


Used in 8 crates (via aloe-vst-events)

GPL-3.0 license

165KB
2K SLoC

Aloe VST Thread

Aloe VST Thread is a Rust crate designed for advanced synchronization and locking mechanisms, tailored specifically for VST (Virtual Studio Technology) plugin development.

Key Traits and Structures

ILock

An essential trait providing a locking interface with the following methods:

  • lock(&mut self): Engages the lock.
  • unlock(&mut self): Disengages the lock.
  • trylock(&mut self) -> bool: Attempts to engage the lock and returns a boolean indicating success.

FConditionalGuard

A structure responsible for conditionally guarding locks. It attempts to lock only when a valid lock pointer is passed, ensuring safe and efficient resource management.

FLockObject

A reference-counted lock object, crucial for managing resource lifetime and ensuring proper cleanup in multi-threaded environments.

Platform-Specific Implementations

  • Windows: Utilizes CRITSECT, a critical section object structure tailored for Windows synchronization.
  • POSIX (PThreads): Implements mutexes using pthread_mutex functions and attributes.

Usage

To use this crate in your project, add the following to your Cargo.toml:

[dependencies]
aloe-vst-thread = "0.1.0"

License

This crate is licensed under GPL-3.0. For more information, see LICENSE.

Repository

For more details, visit the GitHub repository.

Disclaimer

This README.md file was generated by an AI model and may not be 100% accurate; however, it should be pretty good.

This crate is a translation of the JUCE module.

JUCE is a c++ software framework for developing high performance audio applications.

Usage falls under the GPLv3 as well as the JUCE commercial license.

See github.com/juce-framework/JUCE and the JUCE license page for details.

This crate is in the process of being translated from c++ to rust. For progress updates, please see the workspacer rust project. designed specifically for rust projects.

Dependencies

~13–27MB
~376K SLoC