Hey 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 errorsFallback 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