2026-08-28 16:44:28 +07:00
# mytheclipse
2026-08-28 16:05:04 +07:00
2026-08-28 21:45:40 +07:00
A personal collection of Rust abstractions for building resource-aware,
resilient, and well-instrumented applications without hand-rolling the same
plumbing every time — organized as a Cargo workspace, one focused crate per
concern.
2026-08-28 16:05:04 +07:00
2026-08-28 21:45:40 +07:00
[](crates/mytheclipse/LICENSE-MIT)
2026-08-28 16:05:04 +07:00
2026-08-28 21:45:40 +07:00
## Crates
2026-08-28 16:05:04 +07:00
2026-08-28 21:45:40 +07:00
| Crate | Description | Docs |
| :--- | :--- | :--- |
| [`mytheclipse` ](crates/mytheclipse ) | Resource-aware execution primitives (async I/O, compute, background queues), resiliency (retry, circuit breaker, timeout), traffic control (rate limiter, backpressure, concurrency limiter), lifecycle (graceful shutdown, cron), and observability (metrics, panic tracking). | [README ](crates/mytheclipse/README.md ) |
| [`corex-cache` ](crates/corex-cache ) | Unified multi-layer (L1/L2) cache abstraction: in-memory or Moka L1, Redis/Valkey L2, cache-aside read-through. | [README ](crates/corex-cache/README.md ) |
| [`corex-storage` ](crates/corex-storage ) | Unified storage & file system abstraction: one driver interface over local disk, S3/MinIO, and Google Cloud Storage, stream-based. | [README ](crates/corex-storage/README.md ) |
| [`corex-event` ](crates/corex-event ) | Unified events & message bus abstraction: in-memory pub/sub dispatcher plus RabbitMQ and NATS broker adapters behind one trait. | [README ](crates/corex-event/README.md ) |
| [`corex-config` ](crates/corex-config ) | Type-safe, dynamic configuration engine: load `.env` /YAML/JSON/TOML into typed structs, with hot-reload. | [README ](crates/corex-config/README.md ) |
| [`corex-crypto` ](crates/corex-crypto ) | Safe hashing (Argon2id), encryption (AES-256-GCM), and JWT tokens, with key rotation support. | [README ](crates/corex-crypto/README.md ) |
2026-08-28 16:05:04 +07:00
2026-08-28 21:45:40 +07:00
Every crate follows the same philosophy: **one small interface, pluggable
backends behind feature flags, and a working default that needs no external
service to build or test.** Distributed backends (Redis, S3, GCS, RabbitMQ,
NATS) are feature-gated and their integration tests are `#[ignore]` d unless
the corresponding environment variables point at a live service.
2026-08-28 16:05:04 +07:00
2026-08-28 21:45:40 +07:00
## Getting started
2026-08-28 18:44:54 +07:00
2026-08-28 21:45:40 +07:00
Each crate is published independently; add the ones you need:
2026-08-28 16:05:04 +07:00
```toml
[ dependencies ]
2026-08-28 21:45:40 +07:00
mytheclipse = { version = "1" , features = [ "full" ] }
corex-cache = "0.1"
corex-storage = { version = "0.1" , features = [ "s3" ] }
corex-event = { version = "0.1" , features = [ "nats" ] }
corex-config = "0.1"
corex-crypto = "0.1"
2026-08-28 16:05:04 +07:00
```
2026-08-28 21:45:40 +07:00
See each crate's own README (linked above) for usage examples and the full
feature-flag list.
2026-08-28 16:05:04 +07:00
2026-08-28 21:45:40 +07:00
## Development
2026-08-28 16:05:04 +07:00
2026-08-28 21:45:40 +07:00
This is a Cargo workspace; run commands from the repository root:
2026-08-28 16:05:04 +07:00
```bash
2026-08-28 21:45:40 +07:00
cargo build --workspace --all-features
cargo test --workspace --all-features
cargo clippy --workspace --all-features -- -D warnings
cargo fmt --all --check
2026-08-28 16:05:04 +07:00
```
2026-08-28 21:45:40 +07:00
Or target a single crate with `-p <name>` , e.g. `cargo test -p corex-cache` .
2026-08-28 16:05:04 +07:00
## License
Licensed under either of:
2026-08-28 21:45:40 +07:00
- Apache License, Version 2.0 ([LICENSE-APACHE ](crates/mytheclipse/LICENSE-APACHE ) or <http://www.apache.org/licenses/LICENSE-2.0>)
- MIT license ([LICENSE-MIT ](crates/mytheclipse/LICENSE-MIT ) or <http://opensource.org/licenses/MIT>)
2026-08-28 16:05:04 +07:00
2026-08-28 18:44:54 +07:00
at your option.