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 |
| :--- | :--- | :--- |
2026-08-29 17:34:30 +07:00
| [`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, async lifecycle manager, distributed lock), and observability (metrics, panic tracking, metrics-to-health bridge). | [README ](crates/mytheclipse/README.md ) |
2026-08-28 22:24:14 +07:00
| [`mytheclipse-cache` ](crates/mytheclipse-cache ) | Unified multi-layer (L1/L2) cache abstraction: in-memory or Moka L1, Redis/Valkey L2, cache-aside read-through. | [README ](crates/mytheclipse-cache/README.md ) |
| [`mytheclipse-storage` ](crates/mytheclipse-storage ) | Unified storage & file system abstraction: one driver interface over local disk, S3/MinIO, and Google Cloud Storage, stream-based. | [README ](crates/mytheclipse-storage/README.md ) |
| [`mytheclipse-event` ](crates/mytheclipse-event ) | Unified events & message bus abstraction: in-memory pub/sub dispatcher plus RabbitMQ and NATS broker adapters behind one trait. | [README ](crates/mytheclipse-event/README.md ) |
2026-08-29 17:34:30 +07:00
| [`mytheclipse-config` ](crates/mytheclipse-config ) | Type-safe, dynamic configuration engine: load `.env` /YAML/JSON/TOML into typed structs, with hot-reload and typed validation. | [README ](crates/mytheclipse-config/README.md ) |
2026-08-29 16:04:50 +07:00
| [`mytheclipse-crypto` ](crates/mytheclipse-crypto ) | Safe hashing (Argon2id), encryption (AES-256-GCM), JWT and PASETO tokens, with key rotation support. | [README ](crates/mytheclipse-crypto/README.md ) |
| [`mytheclipse-queue` ](crates/mytheclipse-queue ) | Unified job queue abstraction with WorkerPool executor, retry/backoff, and dead-letter support. Backends: in-memory, Redis, NATS, PostgreSQL. | [README ](crates/mytheclipse-queue/README.md ) |
| [`mytheclipse-tracing` ](crates/mytheclipse-tracing ) | Pre-built tracing subscriber layers with env filtering and optional OTLP/Jaeger/Zipkin export. | [README ](crates/mytheclipse-tracing/README.md ) |
| [`mytheclipse-http` ](crates/mytheclipse-http ) | HTTP client and server abstraction with built-in retry, circuit breaker, timeout, and rate limiting. | [README ](crates/mytheclipse-http/README.md ) |
| [`mytheclipse-cli` ](crates/mytheclipse-cli ) | CLI framework for mytheclipse applications with built-in subcommands (serve, worker, migrate, health, version). | [README ](crates/mytheclipse-cli/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" ] }
2026-08-28 22:24:14 +07:00
mytheclipse-cache = "0.1"
mytheclipse-storage = { version = "0.1" , features = [ "s3" ] }
mytheclipse-event = { version = "0.1" , features = [ "nats" ] }
mytheclipse-config = "0.1"
mytheclipse-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 22:24:14 +07:00
Or target a single crate with `-p <name>` , e.g. `cargo test -p mytheclipse-cache` .
2026-08-28 21:45:40 +07:00
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.