Released Yoshi - Take a :eyes:!
⚓ Rust 📅 2025-06-03 👤 surdeus 👁️ 11Hey all,
I wanted to share something I’ve been quietly working on for a while— yoshi
a new Rust error-handling framework.
This isn't meant to "replace" anything (I deeply respect what anyhow, thiserror, snafu, etc. have done). yoshi just approaches things from a slightly different angle:
Structured. Thematic. Introspective.
It's designed to provide structured, layered, and context-rich error reporting. It's part of a broader effort to make debugging and diagnostics more expressive—especially for complex systems or production-grade codebases.
Philosophy
The idea was to explore a framework that treats context, severity, metadata, and payloads as first-class citizens, especially for layered or enterprise-grade systems.
If you're used to .context() or ?, you’ll feel at home—but with new toys like:
.lay("high-level context"),.meta("k", "v"),.with_priority(150)
.with_shell()to embed structured data (typed payloads)
yum!(err)for thematic introspection + debug
#[derive(YoshiError)]for ergonomic macro-based errors
Fallback recovery patterns + transient flag handling
Error analysis methods like analyze_contexts()orseverity()
Features (Core + Ecosystem)
Hatch ecosystem: Hatch<T>= context-richResult<T, Yoshi>
Full derive macro (#[derive(YoshiError)]) with#[y_net],#[y_timeout],#[y_from_io], etc.
Shells: Typed payloads to carry structured debugging data
Priority/severity: Used for triage or telemetry
Thematic methods: .lay(),.help(),.nest(),.yum!(), etc.
Advanced support: error chaining, analysis, cross-process sync (opt-in)
no_std-friendly core with modular extensions
GitHub:
Examples Included
You can find these under the examples/ folder on GitHub:
simple_demo.rs– barebones introstandard_usage.rs– result chaining + contextderive_showcase.rs– full macro attribute usageadvanced_usage.rs– metadata, shells, priorityexpert_usage.rs– aggregation, performance, metrics, recoverycomplete_application.rs– full layered app simulating service fallbacks
I'd Love Feedback
- How does the API feel?
- Are there confusing parts?
- What parts make you go “ah, that’s neat” or “hmm, too much”?
I’m still learning, growing, and trying to align this with real-world needs. Your eyes and insight would help a ton. This is very much a “work with the community” effort, not a “set in stone” package.
Thanks in advance for taking a peek ![]()
![]()
— Lord Xyn / ArcMoon Studios
4 posts - 2 participants
🏷️ rust_feed
