{"id":19506890,"url":"https://github.com/svroonland/rezilience","last_synced_at":"2025-05-08T00:39:44.577Z","repository":{"id":38344481,"uuid":"264443020","full_name":"svroonland/rezilience","owner":"svroonland","description":"ZIO-native utilities for making resilient distributed systems","archived":false,"fork":false,"pushed_at":"2025-05-01T06:43:10.000Z","size":2719,"stargazers_count":157,"open_issues_count":19,"forks_count":16,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-05-08T00:39:33.250Z","etag":null,"topics":["bulkhead","circuit-breaker","fault-tolerance","scala","zio"],"latest_commit_sha":null,"homepage":"https://www.vroste.nl/rezilience","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/svroonland.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":"FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"svroonland"}},"created_at":"2020-05-16T13:26:53.000Z","updated_at":"2025-05-01T06:43:14.000Z","dependencies_parsed_at":"2023-12-23T10:21:57.700Z","dependency_job_id":"4afa28cb-f8b4-46b4-ba65-f488e9c6c4a9","html_url":"https://github.com/svroonland/rezilience","commit_stats":null,"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svroonland%2Frezilience","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svroonland%2Frezilience/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svroonland%2Frezilience/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svroonland%2Frezilience/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/svroonland","download_url":"https://codeload.github.com/svroonland/rezilience/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252978668,"owners_count":21834910,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bulkhead","circuit-breaker","fault-tolerance","scala","zio"],"created_at":"2024-11-10T22:38:50.262Z","updated_at":"2025-05-08T00:39:44.534Z","avatar_url":"https://github.com/svroonland.png","language":"Scala","funding_links":["https://github.com/sponsors/svroonland"],"categories":["容错组件"],"sub_categories":["微服务框架"],"readme":"# Rezilience\n\n_Use and like this library? Consider [sponsoring](https://github.com/sponsors/svroonland) its ongoing development and maintenance_\n\n`rezilience` is a ZIO-native collection of policies for making asynchronous systems more resilient to failures.\n\nIt is inspired by [Polly](https://github.com/App-vNext/Polly), [Resilience4J](https://github.com/resilience4j/resilience4j) and [Akka](https://doc.akka.io/docs/akka/current/common/circuitbreaker.html).\n\nIt consists of these policies:\n\n* `CircuitBreaker`\n* `Bulkhead`\n* `RateLimiter`\n* `Retry`\n* `Timeout`\n\n## Features / Design goals\n* Type-safety: all errors that can result from any of the `rezilience` policies are encoded in the method signatures, so no unexpected RuntimeExceptions.\n* Support for your own error types (the `E` in `ZIO[R, E, A]`) instead of requiring your effects to have `Exception` as error type\n* Lightweight: `rezilience` uses only ZIO fibers and will not create threads or block\n* Switchable at runtime with two transition modes\n* Resource-safe: built on ZIO's `ZManaged`, any allocated resources are cleaned up safely after use. \n* Interrupt safe: interruptions of effects wrapped by `rezilience` policies are handled properly.\n* Thread-safe: all policies are safe under concurrent use.\n* ZIO integration: some policies take for example ZIO `Schedule`s and `rezilience` tries to help type inference using variance annotations\n* Metrics: all policies (will) provide usage metrics for monitoring purposes\n* Composable: policies can be composed into one overall policy\n* Discoverable: no syntax extensions or implicit conversions, just plain scala \n\n## Documentation\n[Documentation](https://svroonland.github.io/rezilience)\n\nFurther questions? Look for the `#rezilience` channel on the ZIO Discord: https://discord.gg/2ccFBr4\n\n## Installation\n\n[![Sonatype Nexus (Releases)](https://img.shields.io/maven-central/v/nl.vroste/rezilience_2.13)](https://repo1.maven.org/maven2/nl/vroste/rezilience_2.13/) [![Sonatype Nexus (Snapshots)](https://img.shields.io/nexus/s/nl.vroste/rezilience_2.13?server=https%3A%2F%2Foss.sonatype.org)](https://oss.sonatype.org/content/repositories/snapshots/nl/vroste/rezilience_2.13/)\n\nAdd to your build.sbt:\n\n```scala\nlibraryDependencies += \"nl.vroste\" %% \"rezilience\" % \"\u003cversion\u003e\"\n```\n\n## Used by\n\nIf you are using this library and find it useful, please consider adding your company or project to the list below!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsvroonland%2Frezilience","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsvroonland%2Frezilience","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsvroonland%2Frezilience/lists"}