Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. robustly

robustly

MITGov1.2.0

A Go library for running functions resiliently by catching and restarting panics, with optional probabilistic crash injection.

GitHubGitHub
159 stars7 forks0 contributors

What is robustly?

Robustly is a Go library that runs functions resiliently by catching panics and automatically restarting them. It solves the problem of rare, hard-to-reproduce bugs crashing long-running programs like monitoring agents or event processors, making them usable even with occasional failures.

Target Audience

Go developers building high-availability, stateful applications that process continuous data streams and cannot afford downtime from rare panics.

Value Proposition

Developers choose Robustly for its focused approach to resilience, allowing programs to survive once-in-a-million errors without complex error handling, plus its unique crash injection feature for testing recovery mechanisms.

Overview

Run functions resiliently in Go, catching and restarting panics

Use Cases

Best For

  • Monitoring agents that must stay running despite occasional panics
  • Event processing systems handling high-throughput data streams
  • Long-running stateful applications where crashes lose valuable context
  • Testing fault tolerance by injecting controlled crashes
  • Programs inspired by net/http's per-goroutine crash isolation
  • Situations where redeploying to fix rare bugs is impractical

Not Ideal For

  • Applications where panics indicate critical security or data integrity issues that must halt execution immediately
  • Stateless batch jobs or short-lived processes where a full restart is acceptable and simpler to implement
  • Projects requiring built-in error logging, monitoring, and alerting for recovered panics without extra code
  • Teams looking for a general-purpose error handling library with broad features beyond panic recovery

Pros & Cons

Pros

Automatic Panic Recovery

Immediately catches panics and restarts the crashed function, ensuring long-running applications like monitoring agents stay operational despite rare bugs, as highlighted in the blog-inspired use case.

Prevents Crash Loops

Implements rate limits and timeouts to avoid infinite restart cycles, using RunOptions to control behavior and fail gracefully if crashes are too frequent, protecting system stability.

Crash Injection Testing

Allows probabilistic panic injection at specific file:line locations with configurable probabilities, enabling developers to test resilience and recovery mechanisms realistically, as demonstrated with CrashSetup().

Inspired by Reliable Patterns

Mimics the net/http server's resilience where individual goroutine crashes don't bring down the whole service, offering a proven approach for high-availability Go programs.

Cons

Risk of Masking Bugs

By automatically recovering from panics, it can hide critical underlying issues that should be fixed, leading to technical debt and potential accumulation of rare errors over time, as warned in the philosophy.

Limited Observability

Lacks built-in logging, metrics, or alerting for recovered panics; while PrintStack can be enabled, developers must add external tools for comprehensive monitoring, increasing complexity.

Niche and Dated Implementation

Focused on specific 2013-era use cases with minimal updates, so it may not integrate well with modern Go ecosystems or have active community support for new features.

Frequently Asked Questions

Quick Stats

Stars159
Forks7
Contributors0
Open Issues1
Last commit2 years ago
CreatedSince 2013

Tags

#go-library#panic-recovery#fault-tolerance#resilience#goroutines#error-handling#testing-tools

Built With

G
Go

Included in

Go169.1k
Auto-fetched 6 hours ago

Related Projects

fzffzf

:cherry_blossom: A command-line fuzzy finder

Stars81,940
Forks2,820
Last commit22 hours ago
divedive

A tool for exploring each layer in a docker image

Stars54,353
Forks1,991
Last commit7 months ago
HubHub

A command-line tool that makes git easier to use with GitHub.

Stars22,957
Forks2,222
Last commit2 years ago
lolo

💥 A Lodash-style Go library based on Go 1.18+ Generics (map, filter, contains, find...)

Stars21,394
Forks946
Last commit20 hours ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub