Skip to content

JamesHallowell/real-time

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

real-time ⏱️

Build Crates.io Docs.rs

Safely share data with a real-time thread.

Overview

This crate provides some tools for sharing data with a real-time thread.

A shared value that can be read on a real-time thread.

fn main() {
    let (writer, reader) = real_time::readable(SynthParameters::default());
}

A shared value that can be written to from a real-time thread.

fn main() {
    let (writer, reader) = real_time::writable(AudioPlaybackStats::default());
}

A bounded, lock-free, single-producer, single consumer FIFO that is optimised for a real-time consumer. Values sent will be reclaimed and dropped by the producer once the real-time consumer has finished with them.

fn main() {
    let (producer, consumer) = real_time::fifo::<MidiMessage, 16>();
}

Usage

Add this to your Cargo.toml:

[dependencies]
real-time = "0.8"

Implementation

real_time::readable and real_time::writable use the same algorithms as RealtimeObject from FAbian's Realtime Box o' Tricks, that was presented at Meeting C++ 2019.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

Safely share data with a real-time thread ⏱️

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Languages