Skip to content

Alloy-Tools/alloy_tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

1. Alloy

MIT License Apache 2.0 License Main CI Dev CI

Alloy is a collection of modular, extendable, interoperable Rust libraries designed to work together seamlessly while remaining independently useful. Like an emergent system, the components combine to create something larger than the individual parts.

1.1 Why Alloy?

Modern Rust applications often need to assemble components from different ecosystems. Alloy provides a cohesive foundation where:

  • Components are designed to work together from the ground up
  • APIs are consistent across different domains
  • Incremental adoption — use one crate or the entire library
  • Performance is prioritized without sacrificing ergonomics

1.2 Features

1.2.1 Core Principles

Alloys cohesive ecosystem of Rust libraries share some common design principles:

  • Modular: Only use what you need — minimal dependencies
  • Interoperable: Components work well together and with the broader Rust ecosystem
  • Performant: Zero-cost abstractions where possible
  • Ergonomic: Developer-friendly APIs with sensible defaults
  • Well-tested: Comprehensive unit test coverage
  • Secure: Built with security in mind

1.2.2 Shared Infrastructure

All Alloy crates benefit from:

  • Common serialization formats
  • Standardized async patterns
  • Shared configuration patterns

With plans for:

  • Unified error handling
  • Consistent logging/tracing

2. Crates

2.1 Crate Descriptions

Docs Description
al-core docs Core utilities, traits, and foundational types
al-crypto docs Cryptographic primitives and protocols
al-vault docs Secure secret management and key storage
al-net docs Secure network connections

2.2 Roadmap

See roadmap for planned crates and features.

3. Getting Started

3.1 Installation

3.1.1 From Crates.io

The code must be cloned from the repository for now, but publishing to Crates.io is planned.

3.1.2 From Repository

# Clone the repository
git clone https://github.com/Alloy-Tools/alloy_tools.git
cd alloy_tools

# Build all crates
cargo build

# Run tests
cargo test

Add specific crates to your Cargo.toml:

[dependencies]
al-core = { path = "../alloy_tools/crates/al-core" }
al-vault = { path = "../alloy_tools/crates/al-vault" }

3.1.3 Feature Flags

Most crates support optional features

al-core = { path = "../alloy_tools/crates/al-core", features = ["serde", "json"] }

3.2 Quick Examples

3.2.1 Using al-core

3.2.2 Combining Multiple Crates

4. Project Structure

alloy_tools/
├── Cargo.toml         # Workspace configuration
├── README.md          # This file
├── ROADMAP.md         # Development roadmap
├── LICENSE-APACHE_2   # Apache 2.0 license notice
├── LICENSE-MIT        # Mit license notice
└── crates/            # All library crates
   ├── al-core/        # Core utilities
   ├── al-crypto/      # Cryptography
   ├── al-vault/       # Secret management
   └── ...

5. License

All code is dual-licensed, at your option, under either of:

6. Acknowledgments

  • tynm version 0.2 — Used to get simple types names that include generics
  • serde version 1.0.219 — Used for serialization framework
  • erased-serde version 0.4.6 — Used for type erased serialization
  • tokio version 1 — Used for threads and asynchronous runtime
  • once_cell version 1.21.3 — Used for lazy static globals

About

No description, website, or topics provided.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE_2.0
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages