Released Yoshi - Take a :eyes:!

⚓ rust    📅 2025-06-03    👤 surdeus    👁️ 2      

surdeus

Hey all,

I wanted to share something I’ve been quietly working on for a while— yoshi

YoshiLogo 3

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.


:brain: 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:

  • :candy: .lay("high-level context"), .meta("k", "v"), .with_priority(150)
  • :brain: .with_shell() to embed structured data (typed payloads)
  • :test_tube: yum!(err) for thematic introspection + debug
  • :package: #[derive(YoshiError)] for ergonomic macro-based errors
  • :thread: Fallback recovery patterns + transient flag handling
  • :bar_chart: Error analysis methods like analyze_contexts() or severity()

:wrench: Features (Core + Ecosystem)

  • :white_check_mark: Hatch ecosystem: Hatch<T> = context-rich Result<T, Yoshi>
  • :white_check_mark: Full derive macro (#[derive(YoshiError)]) with #[y_net], #[y_timeout], #[y_from_io], etc.
  • :white_check_mark: Shells: Typed payloads to carry structured debugging data
  • :white_check_mark: Priority/severity: Used for triage or telemetry
  • :white_check_mark: Thematic methods: .lay(), .help(), .nest(), .yum!(), etc.
  • :white_check_mark: Advanced support: error chaining, analysis, cross-process sync (opt-in)
  • :white_check_mark: no_std-friendly core with modular extensions

:hammer_and_wrench: GitHub:


:file_folder: Examples Included

You can find these under the examples/ folder on GitHub:

  • simple_demo.rs – barebones intro
  • standard_usage.rs – result chaining + context
  • derive_showcase.rs – full macro attribute usage
  • advanced_usage.rs – metadata, shells, priority
  • expert_usage.rs – aggregation, performance, metrics, recovery
  • complete_application.rs – full layered app simulating service fallbacks

:handshake: 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 :yellow_heart::crab:

— Lord Xyn / ArcMoon Studios

4 posts - 2 participants

Read full topic

🏷️ rust_feed