{"id":30386676,"url":"https://github.com/circlefin/malachite","last_synced_at":"2025-09-08T23:47:50.735Z","repository":{"id":269050626,"uuid":"700886429","full_name":"circlefin/malachite","owner":"circlefin","description":"Flexible BFT consensus engine in Rust","archived":false,"fork":false,"pushed_at":"2025-09-08T09:41:34.000Z","size":6140,"stargazers_count":301,"open_issues_count":84,"forks_count":62,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-09-08T11:28:33.459Z","etag":null,"topics":["bft","consensus","malachite-engine","rust","tendermint"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/circlefin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-10-05T13:42:39.000Z","updated_at":"2025-09-08T09:41:37.000Z","dependencies_parsed_at":"2024-12-20T15:45:20.952Z","dependency_job_id":"c9178a0a-c414-4a1a-8d5a-14af3f503e06","html_url":"https://github.com/circlefin/malachite","commit_stats":null,"previous_names":["informalsystems/malachite","circlefin/malachite"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/circlefin/malachite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circlefin%2Fmalachite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circlefin%2Fmalachite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circlefin%2Fmalachite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circlefin%2Fmalachite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/circlefin","download_url":"https://codeload.github.com/circlefin/malachite/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/circlefin%2Fmalachite/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274231140,"owners_count":25245675,"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","status":"online","status_checked_at":"2025-09-08T02:00:09.813Z","response_time":121,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["bft","consensus","malachite-engine","rust","tendermint"],"created_at":"2025-08-21T04:01:19.013Z","updated_at":"2025-09-08T23:47:50.724Z","avatar_url":"https://github.com/circlefin.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/informalsystems/malachite/refs/heads/main/assets/banner.png\" alt=\"Malachite\" width=\"2400\" align=\"center\"\u003e\n\u003c/h1\u003e\n\n\u003ch4 align=\"center\"\u003e\n    Flexible BFT Consensus Engine in Rust\u003cbr/\u003e\n    State-of-the-art implementation of Tendermint\n\u003c/h4\u003e\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n[![Build Status][build-image]][build-link]\n[![Quint tests][quint-image]][quint-link]\n[![MBT tests][mbt-test-image]][mbt-test-link]\n[![Code coverage][coverage-image]][coverage-link]\n\n[![Apache 2.0 Licensed][license-image]][license-link]\n![Rust Stable][rustc-image]\n![Rust 1.82+][rustc-version]\n[![Quint 0.22][quint-version]][quint-repo]\n\n[![Telegram Chat][tg-badge]][tg-url]\n\n[![Documentation][docs-main-image]][docs-main-link]\n\n\u003c/div\u003e\n\n## About\n\nMalachite is a Byzantine-fault tolerant (BFT) consensus engine implemented in Rust.\n\nThe Malachite team from Informal Systems has officially joined Circle, bringing their expertise and IP to help build Arc, an open Layer-1 blockchain purpose-built for stablecoin finance. Visit [arcnetwork.xyz](https://arcnetwork.xyz) for more information.\n\nMalachite `/ˈmæl.ə.kaɪt/` is pronounced as follows: __\"Mala\"__ (like in Malaysia) + __\"kite\"__ (like the flying toy).\n\n\u003e [!IMPORTANT]\n\u003e Malachite is alpha software and under heavy development.\n\u003e The software is provided \"as is\" and has not been externally audited; use at your own risk.\n\n### Goals\n\nMalachite aims to empower developers building decentralized systems—including sequencers, social networks, and Layer-1 blockchains—by offering a flexible, reliable, and high-performance BFT consensus engine. It now serves as the consensus foundation for [Arc](http://arcnetwork.xyz), a new purpose-built blockchain developed by Circle.\n\n### Features\n\n#### Tendermint as a Library\nBundled with Malachite comes a state-of-the-art implementation of the Tendermint BFT consensus algorithm.\nTendermint is an [optimistically responsive][responsive] consensus algorithm, and therefore exhibits high-performance, and has found adoption in many decentralized systems through its implementation in Go as part of [CometBFT](https://github.com/cometbft/cometbft/).\n\n#### Design\nKey [design decisions][announcement] in Malachite are heavily inspired by lessons and experiences of maintaining CometBFT throughout the years.\nMalachite addresses numerous points of technical debt in the design of consensus engines, resulting in a lean, flexible, and reliable solution that performs at the highest level.\n\n#### Reliability and Performance\nParts of Malachite were co-designed with their formal specification and model checking, notably for the Tendermint algorithm, which improved the confidence and reliability of this core library.\n\nEarly experiments with Malachite show an average finalization latency of 780 ms at a scale of 100 validators with 1MB blocks.\nDepending on the setup, Malachite can clear up to 2.5 blocks per second or finalize up to 13.5 MB/s (around 50,000 transactions per second).\n\nFuture performance benchmarks will be maintained and published as part of Arc’s open-source documentation at a future date.\n\n## Overview\n\n### Repository\n\nThe repository is split into three areas, each covering one of the important aspects of this project:\n\n1. [code](./code): Contains the Rust implementation of the Tendermint consensus algorithm, split across multiple Rust crates.\n2. [docs](./docs): Contains Architectural Decision Records (ADRs) and other documentation, such as the 2018 paper describing the core consensus algorithm.\n3. [specs](./specs): Contains English and [Quint][quint-repo] specifications.\n\n### Crates and Status\n\n\u003e [!NOTE]\n\u003e The actual name of each crate is prefixed with `informalsystems-malachitebft-`.\n\u003e For instance, the crate denoted by `core-consensus` below can be found on crates.io as `informalsystems-malachitebft-core-consensus`.\n\n#### Core consensus algorithm\n\n|                       Crate name                      |                                         Crate                                          |                                           Docs                                            |\n|:------------------------------------------------------|:--------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------:|\n|      [core-consensus](code/crates/core-consensus)     | [![core-consensus][core-consensus-crate-image]][core-consensus-crate-link]             | [![core-consensus Docs][core-consensus-docs-image]][core-consensus-docs-link]             |\n|         [core-driver](code/crates/core-driver)        | [![core-driver][core-driver-crate-image]][core-driver-crate-link]                      | [![core-driver Docs][core-driver-docs-image]][core-driver-docs-link]                      |\n|  [core-state-machine](code/crates/core-state-machine) | [![core-state-machine][core-state-machine-crate-image]][core-state-machine-crate-link] | [![core-state-machine Docs][core-state-machine-docs-image]][core-state-machine-docs-link] |\n|          [core-types](code/crates/core-types)         | [![core-types][core-types-crate-image]][core-types-crate-link]                         | [![core-types Docs][core-types-docs-image]][core-types-docs-link]                         |\n|     [core-votekeeper](code/crates/core-votekeeper)    | [![core-votekeeper][core-votekeeper-crate-image]][core-votekeeper-crate-link]          | [![core-votekeeper Docs][core-votekeeper-docs-image]][core-votekeeper-docs-link]          |\n\n#### Consensus engine\n\n|                 Crate name                 |                               Crate                               |                                 Docs                                 |\n|-------------------------------------------:|:-----------------------------------------------------------------:|:--------------------------------------------------------------------:|\n| [app-channel](./code/crates/app-channel)   | [![app-channel][app-channel-crate-image]][app-channel-crate-link] | [![app-channel Docs][app-channel-docs-image]][app-channel-docs-link] |\n|         [app](./code/crates/app)           |             [![app][app-crate-image]][app-crate-link]             |             [![app Docs][app-docs-image]][app-docs-link]             |\n|       [codec](./code/crates/codec)         |          [![codec][codec-crate-image]][codec-crate-link]          |          [![codec Docs][codec-docs-image]][codec-docs-link]          |\n|      [config](./code/crates/config)        |        [![config][config-crate-image]][config-crate-link]         |        [![config Docs][config-docs-image]][config-docs-link]         |\n|   [discovery](./code/crates/discovery)     |    [![discovery][discovery-crate-image]][discovery-crate-link]    |    [![discovery Docs][discovery-docs-image]][discovery-docs-link]    |\n|      [engine](./code/crates/engine)        |        [![engine][engine-crate-image]][engine-crate-link]         |        [![engine Docs][engine-docs-image]][engine-docs-link]         |\n|     [metrics](./code/crates/metrics)       |       [![metrics][metrics-crate-image]][metrics-crate-link]       |       [![metrics Docs][metrics-docs-image]][metrics-docs-link]       |\n|     [network](./code/crates/network)       |       [![network][network-crate-image]][network-crate-link]       |       [![network Docs][network-docs-image]][network-docs-link]       |\n|        [peer](./code/crates/peer)          |           [![peer][peer-crate-image]][peer-crate-link]            |           [![peer Docs][peer-docs-image]][peer-docs-link]            |\n|       [proto](./code/crates/proto)         |          [![proto][proto-crate-image]][proto-crate-link]          |          [![proto Docs][proto-docs-image]][proto-docs-link]          |\n|        [sync](./code/crates/sync)          |           [![sync][sync-crate-image]][sync-crate-link]            |           [![sync Docs][sync-docs-image]][sync-docs-link]            |\n|         [wal](./code/crates/wal)           |             [![wal][wal-crate-image]][wal-crate-link]             |             [![wal Docs][wal-docs-image]][wal-docs-link]             |\n\n\n### Building with Malachite\n\nAs a guiding point to understand how to use Malachite, please read [ARCHITECTURE.md](ARCHITECTURE.md).\n\nYou can also check out the [examples](./code/examples) for a more in-depth experience.\n\n### Contributing\n\nIf you would like to contribute to the Malachite open-source codebase, please see [CONTRIBUTING.md](./CONTRIBUTING.md).\nWe invite all contributors.\n\n## Requirements\n\n- Rust v1.82+ ([rustup.rs](https://rustup.rs))\n- Quint v0.22+ ([github.com](https://github.com/informalsystems/quint))\n\n## Acknowledgements\n\nMalachite would not have been possible without the kind support of the Starknet ecosystem.\nWe are grateful to StarkWare Industries for prompting the initial discussions of building Tendermint in Rust, to Starknet Foundation for funding and fostering a collaborative environment, and to both of these organizations plus numerous others in the ecosystem for their constructive feedback on earlier designs of Malachite.\n\nWe are also thankful for the collaboration with Farcaster.\nThis led to further refinements and maturing of the Malachite codebase, and their approach to building complex systems and shipping valuable products is an inspiration for us.\n\nThese collaborations reflect work completed prior to the Malachite team joining Circle.\n\n## License\n\nCopyright © 2025 Circle Internet Group, Inc. All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use the files in this repository except in compliance with the License. You may obtain a copy of the License at\n\n    https://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.\n\n[docs-main-image]: https://img.shields.io/badge/docs-main-blue?logo=googledocs\u0026logoColor=white\n[docs-main-link]: https://informalsystems.github.io/malachite/\n[build-image]: https://github.com/circlefin/malachite/actions/workflows/rust.yml/badge.svg\n[build-link]: https://github.com/circlefin/malachite/actions/workflows/rust.yml\n[quint-image]: https://github.com/circlefin/malachite/actions/workflows/quint.yml/badge.svg\n[quint-link]: https://github.com/circlefin/malachite/actions/workflows/quint.yml\n[mbt-test-image]: https://github.com/circlefin/malachite/actions/workflows/mbt.yml/badge.svg\n[mbt-test-link]: https://github.com/circlefin/malachite/actions/workflows/mbt.yml\n[coverage-image]: https://codecov.io/gh/informalsystems/malachite/graph/badge.svg?token=B9KY7B6DJF\n[coverage-link]: https://codecov.io/gh/informalsystems/malachite\n[license-image]: https://img.shields.io/badge/license-Apache_2.0-blue.svg\n[license-link]: https://github.com/informalsystems/hermes/blob/master/LICENSE\n[rustc-image]: https://img.shields.io/badge/Rust-stable-orange.svg\n[rustc-version]: https://img.shields.io/badge/Rust-1.82+-orange.svg\n[quint-version]: https://img.shields.io/badge/Quint-0.22-purple.svg\n[quint-repo]: https://github.com/informalsystems/quint\n[tg-url]: https://t.me/MalachiteEngine\n[tg-badge]: https://img.shields.io/badge/Malachite-Engine-blue.svg?logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEyIDI0YzYuNjI3IDAgMTItNS4zNzMgMTItMTJTMTguNjI3IDAgMTIgMCAwIDUuMzczIDAgMTJzNS4zNzMgMTIgMTIgMTJaIiBmaWxsPSJ1cmwoI2EpIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjQyNSAxMS44NzFhNzk2LjQxNCA3OTYuNDE0IDAgMCAxIDYuOTk0LTMuMDE4YzMuMzI4LTEuMzg4IDQuMDI3LTEuNjI4IDQuNDc3LTEuNjM4LjEgMCAuMzIuMDIuNDcuMTQuMTIuMS4xNS4yMy4xNy4zMy4wMi4xLjA0LjMxLjAyLjQ3LS4xOCAxLjg5OC0uOTYgNi41MDQtMS4zNiA4LjYyMi0uMTcuOS0uNSAxLjE5OS0uODE5IDEuMjI5LS43LjA2LTEuMjI5LS40Ni0xLjg5OC0uOS0xLjA2LS42ODktMS42NDktMS4xMTktMi42NzgtMS43OTgtMS4xOS0uNzgtLjQyLTEuMjA5LjI2LTEuOTA4LjE4LS4xOCAzLjI0Ny0yLjk3OCAzLjMwNy0zLjIyOC4wMS0uMDMuMDEtLjE1LS4wNi0uMjEtLjA3LS4wNi0uMTctLjA0LS4yNS0uMDItLjExLjAyLTEuNzg4IDEuMTQtNS4wNTYgMy4zNDgtLjQ4LjMzLS45MDkuNDktMS4yOTkuNDgtLjQzLS4wMS0xLjI0OC0uMjQtMS44NjgtLjQ0LS43NS0uMjQtMS4zNDktLjM3LTEuMjk5LS43OS4wMy0uMjIuMzMtLjQ0Ljg5LS42NjlaIiBmaWxsPSIjZmZmIi8+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJhIiB4MT0iMTEuOTkiIHkxPSIwIiB4Mj0iMTEuOTkiIHkyPSIyMy44MSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiMyQUFCRUUiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyMjlFRDkiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48L3N2Zz4K\n[responsive]: https://informal.systems/blog/tendermint-responsiveness\n[announcement]: https://informal.systems/blog/malachite-decentralize-whatever\n[madara]: https://github.com/madara-alliance/madara\n[pathfinder]: https://github.com/eqlabs/pathfinder\n[website-dashboard]: https://informal.systems/malachite/dashboard\n[website-announcements]: https://informal.systems/malachite/blog\n\n[//]: # (crates.io and docs.rs: links and badges)\n[core-consensus-crate-image]: https://img.shields.io/crates/v/informalsystems-malachitebft-core-consensus\n[core-consensus-crate-link]: https://crates.io/crates/informalsystems-malachitebft-core-consensus\n[core-driver-crate-image]: https://img.shields.io/crates/v/informalsystems-malachitebft-core-driver\n[core-driver-crate-link]: https://crates.io/crates/informalsystems-malachitebft-core-driver\n[core-state-machine-crate-image]: https://img.shields.io/crates/v/informalsystems-malachitebft-core-state-machine\n[core-state-machine-crate-link]: https://crates.io/crates/informalsystems-malachitebft-core-state-machine\n[core-types-crate-image]: https://img.shields.io/crates/v/informalsystems-malachitebft-core-types\n[core-types-crate-link]: https://crates.io/crates/informalsystems-malachitebft-core-types\n[core-votekeeper-crate-image]: https://img.shields.io/crates/v/informalsystems-malachitebft-core-votekeeper\n[core-votekeeper-crate-link]: https://crates.io/crates/informalsystems-malachitebft-core-votekeeper\n[core-consensus-docs-image]: https://img.shields.io/docsrs/informalsystems-malachitebft-core-consensus\n[core-consensus-docs-link]: https://docs.rs/informalsystems-malachitebft-core-consensus\n[core-driver-docs-image]: https://img.shields.io/docsrs/informalsystems-malachitebft-core-driver\n[core-driver-docs-link]: https://docs.rs/informalsystems-malachitebft-core-driver\n[core-state-machine-docs-image]: https://img.shields.io/docsrs/informalsystems-malachitebft-core-state-machine\n[core-state-machine-docs-link]: https://docs.rs/informalsystems-malachitebft-core-state-machine\n[core-types-docs-image]: https://img.shields.io/docsrs/informalsystems-malachitebft-core-types\n[core-types-docs-link]: https://docs.rs/informalsystems-malachitebft-core-types\n[core-votekeeper-docs-image]: https://img.shields.io/docsrs/informalsystems-malachitebft-core-votekeeper\n[core-votekeeper-docs-link]: https://docs.rs/informalsystems-malachitebft-core-votekeeper\n[app-channel-crate-image]: https://img.shields.io/crates/v/informalsystems-malachitebft-app-channel\n[app-channel-crate-link]: https://crates.io/crates/informalsystems-malachitebft-app-channel\n[app-channel-docs-image]: https://img.shields.io/docsrs/informalsystems-malachitebft-app-channel\n[app-channel-docs-link]: https://docs.rs/informalsystems-malachitebft-app-channel\n[app-crate-image]: https://img.shields.io/crates/v/informalsystems-malachitebft-app\n[app-crate-link]: https://crates.io/crates/informalsystems-malachitebft-app\n[codec-crate-image]: https://img.shields.io/crates/v/informalsystems-malachitebft-codec\n[codec-crate-link]: https://crates.io/crates/informalsystems-malachitebft-codec\n[config-crate-image]: https://img.shields.io/crates/v/informalsystems-malachitebft-config\n[config-crate-link]: https://crates.io/crates/informalsystems-malachitebft-config\n[discovery-crate-image]: https://img.shields.io/crates/v/informalsystems-malachitebft-discovery\n[discovery-crate-link]: https://crates.io/crates/informalsystems-malachitebft-discovery\n[engine-crate-image]: https://img.shields.io/crates/v/informalsystems-malachitebft-engine\n[engine-crate-link]: https://crates.io/crates/informalsystems-malachitebft-engine\n[metrics-crate-image]: https://img.shields.io/crates/v/informalsystems-malachitebft-metrics\n[metrics-crate-link]: https://crates.io/crates/informalsystems-malachitebft-metrics\n[network-crate-image]: https://img.shields.io/crates/v/informalsystems-malachitebft-network\n[network-crate-link]: https://crates.io/crates/informalsystems-malachitebft-network\n[peer-crate-image]: https://img.shields.io/crates/v/informalsystems-malachitebft-peer\n[peer-crate-link]: https://crates.io/crates/informalsystems-malachitebft-peer\n[proto-crate-image]: https://img.shields.io/crates/v/informalsystems-malachitebft-proto\n[proto-crate-link]: https://crates.io/crates/informalsystems-malachitebft-proto\n[sync-crate-image]: https://img.shields.io/crates/v/informalsystems-malachitebft-sync\n[sync-crate-link]: https://crates.io/crates/informalsystems-malachitebft-sync\n[wal-crate-image]: https://img.shields.io/crates/v/informalsystems-malachitebft-wal\n[wal-crate-link]: https://crates.io/crates/informalsystems-malachitebft-wal\n[app-docs-image]: https://img.shields.io/docsrs/informalsystems-malachitebft-app\n[app-docs-link]: https://docs.rs/informalsystems-malachitebft-app\n[codec-docs-image]: https://img.shields.io/docsrs/informalsystems-malachitebft-codec\n[codec-docs-link]: https://docs.rs/informalsystems-malachitebft-codec\n[config-docs-image]: https://img.shields.io/docsrs/informalsystems-malachitebft-config\n[config-docs-link]: https://docs.rs/informalsystems-malachitebft-config\n[discovery-docs-image]: https://img.shields.io/docsrs/informalsystems-malachitebft-discovery\n[discovery-docs-link]: https://docs.rs/informalsystems-malachitebft-discovery\n[engine-docs-image]: https://img.shields.io/docsrs/informalsystems-malachitebft-engine\n[engine-docs-link]: https://docs.rs/informalsystems-malachitebft-engine\n[metrics-docs-image]: https://img.shields.io/docsrs/informalsystems-malachitebft-metrics\n[metrics-docs-link]: https://docs.rs/informalsystems-malachitebft-metrics\n[network-docs-image]: https://img.shields.io/docsrs/informalsystems-malachitebft-network\n[network-docs-link]: https://docs.rs/informalsystems-malachitebft-network\n[peer-docs-image]: https://img.shields.io/docsrs/informalsystems-malachitebft-peer\n[peer-docs-link]: https://docs.rs/informalsystems-malachitebft-peer\n[proto-docs-image]: https://img.shields.io/docsrs/informalsystems-malachitebft-proto\n[proto-docs-link]: https://docs.rs/informalsystems-malachitebft-proto\n[sync-docs-image]: https://img.shields.io/docsrs/informalsystems-malachitebft-sync\n[sync-docs-link]: https://docs.rs/informalsystems-malachitebft-sync\n[wal-docs-image]: https://img.shields.io/docsrs/informalsystems-malachitebft-wal\n[wal-docs-link]: https://docs.rs/informalsystems-malachitebft-wal\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcirclefin%2Fmalachite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcirclefin%2Fmalachite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcirclefin%2Fmalachite/lists"}