This repository contains support crates for securely projects. It provides a collection of utilities and tools designed to enhance security and maintainability across our ecosystem.
The repository is organized as a Rust workspace with multiple crates:
config
: Configuration management with dot notation and environment overridesencrypt
: Encryption utilities for secure data storage and transmissionqueue
: Async job queuing and processing with sled backendsettings
: Configuration management with encryption supportstore
: Storage abstraction layer with multiple backendstesting
: Common testing utilities, fixtures, and helpersworkflows
: Workflow engine and activity handlers
Add the desired crate(s) to your Cargo.toml
:
[dependencies]
config = { version = "0.1.0" }
encrypt = { version = "0.1.0" }
queue = { version = "0.1.0" }
settings = { version = "0.1.0" }
store = { version = "0.1.0" }
workflows = { version = "0.1.0" }
[dev-dependencies]
testing = { version = "0.1.0" }
The testing
crate provides common utilities for testing securely projects:
use testing::{TestRuntime, assert, temp};
#[test]
fn my_test() {
// Use the test runtime for async tests
let rt = TestRuntime::new();
// Create temporary test directories/files
let test_dir = temp::dir(Some("my-test"));
// Use enhanced assertions
assert::completes_within(async { /* ... */ }, Duration::from_secs(1));
}
## Development
### Prerequisites
- Rust 1.70.0 or higher
- Cargo
### Building
```bash
cargo build --workspace
cargo test --workspace
Generate and view the documentation locally:
cargo doc --workspace --no-deps --open
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -am 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.