{"id":13414452,"url":"https://github.com/iov-one/weave","last_synced_at":"2025-05-16T01:05:28.815Z","repository":{"id":30309434,"uuid":"118366160","full_name":"iov-one/weave","owner":"iov-one","description":"Easy-to-use SDK to build Tendermint ABCI applications","archived":false,"fork":false,"pushed_at":"2023-03-07T03:42:20.000Z","size":6735,"stargazers_count":1117,"open_issues_count":21,"forks_count":46,"subscribers_count":181,"default_branch":"master","last_synced_at":"2025-04-08T11:15:25.515Z","etag":null,"topics":["abci","blockchain","framework","tendermint"],"latest_commit_sha":null,"homepage":"https://weave.iov.one/docs/intro.html","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iov-one.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":"audit/AUDIT.md","citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null}},"created_at":"2018-01-21T19:24:31.000Z","updated_at":"2025-04-01T20:08:29.000Z","dependencies_parsed_at":"2023-07-13T23:53:35.412Z","dependency_job_id":null,"html_url":"https://github.com/iov-one/weave","commit_stats":{"total_commits":1728,"total_committers":19,"mean_commits":90.94736842105263,"dds":0.5590277777777778,"last_synced_commit":"74fafaa757cbd510a61cc9e8b32ad8c9185d0d2e"},"previous_names":["confio/weave"],"tags_count":48,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iov-one%2Fweave","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iov-one%2Fweave/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iov-one%2Fweave/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iov-one%2Fweave/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iov-one","download_url":"https://codeload.github.com/iov-one/weave/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254448579,"owners_count":22072764,"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":["abci","blockchain","framework","tendermint"],"created_at":"2024-07-30T21:00:21.510Z","updated_at":"2025-05-16T01:05:23.754Z","avatar_url":"https://github.com/iov-one.png","language":"Go","funding_links":[],"categories":["Go","Ecosystem"],"sub_categories":["Haskell bundle"],"readme":"# IOV Weave\n[![Build Status TravisCI](https://api.travis-ci.com/iov-one/weave.svg?branch=master)](https://travis-ci.com/iov-one/weave)\n[![codecov](https://codecov.io/gh/iov-one/weave/branch/master/graph/badge.svg)](https://codecov.io/gh/iov-one/weave/branch/master)\n[![LoC](https://tokei.rs/b1/github/iov-one/weave)](https://github.com/iov-one/weave)\n[![Go Report Card](https://goreportcard.com/badge/github.com/iov-one/weave)](https://goreportcard.com/report/github.com/iov-one/weave)\n[![API Reference](https://godoc.org/github.com/iov-one/weave?status.svg\n)](https://godoc.org/github.com/iov-one/weave)\n[![ReadTheDocs](https://readthedocs.org/projects/weave/badge/?version=latest)](http://weave.readthedocs.io/en/latest/)\n[![license](https://img.shields.io/github/license/iov-one/weave.svg)](https://github.com/iov-one/weave/blob/master/LICENSE)\n\n![Weave Logo](./docs/_static/img/weave-logo.jpg)\n\nIOV Weave is a framework for quickly building your custom\n[ABCI application](https://github.com/tendermint/abci)\nto run a blockchain on top of the best-of-class\nBFT Proof-of-stake [Tendermint consensus engine](https://tendermint.com).\nIt provides much commonly used functionality that can\nquickly be imported in your custom chain, as well as a\nsimple framework for adding the custom functionality unique\nto your project.\n\nJoin the Weave [community channel](https://riot.im/app/#/room/#weave:matrix.org) :loudspeaker:\n\nIt is inspired by the routing and middleware model of many web\napplication frameworks, and informed by years of wrestling with\nblockchain state machines. More directly, it is based on the\nofficial cosmos-sdk, both the\n[0.8 release](https://github.com/cosmos/cosmos-sdk/tree/v0.8.0) as well as the\nfuture [0.9 rewrite](https://github.com/cosmos/cosmos-sdk/tree/develop). Naturally, as I was the main author of 0.8.\n\nWhile both of those are extremely powerful and flexible\nand contain advanced features, they have a steep learning\ncurve for novice users. Thus, this library aims to favor\nsimplicity over power when there is a choice. If you hit\nlimitations in the design of this library (such as\nmaintaining multiple merkle stores in one app), I highly\nadvise you to use\n[the official cosmos sdk](https://github.com/cosmos/cosmos-sdk).\n\nOn the other hand, if you want to try out tendermint, or have a\ndesign that doesn't require an advanced setup, you should try\nthis library and give feedback, especially on ease-of-use.\nThe end goal is to make blockchain development almost as\nproductive as web development (in golang), by providing\ndefaults and best practices for many choices, while allowing\nextreme flexibility in business logic and data modelling.\n\nFor more details on the design goals, see the\n[Design Document](./docs/design/overview.rst)\n\n## Prerequisites\n\n* [Go](https://golang.org/doc/install)\n* [docker](https://docs.docker.com/install/)\n* [tendermint 0.31.12](https://github.com/tendermint/tendermint/tree/v0.31.12)\n  * [Installation](https://github.com/tendermint/tendermint/blob/master/docs/introduction/install.md)\n\n## Instructions\n\nFirst, make sure you have\n[set up the requirements](https://weave.readthedocs.io/en/latest/mycoind/setup.html).\nIf you have a solid go and node developer setup, you may skip this,\nbut good to go through it to be sure.\n\nOnce you are set up, you should be able to run something\nlike the following to compile both `bnsd` (IOV blockchain application)\nand `bnscli` (a client side app to interact with `bnsd`).\nYou will have to\n[install a compatible version of tendermint](https://github.com/tendermint/tendermint/blob/master/docs/introduction/install.md)\nseparately. (Currently we use the v0.31.5 release).\n\n```\n# cd into to your workspace that is not in your $GOPATH\ngit clone https://github.com/iov-one/weave.git\ncd weave\nmake install\n```\n\nNote that this app relies on a separate tendermint process\nto drive it. It is helpful to first read a primer on\n[tendermint](https://tendermint.readthedocs.io/en/master/introduction.html)\nas well as the documentation on the\n[tendermint cli commands](https://tendermint.readthedocs.io/en/master/using-tendermint.html).\n\nOnce it compiles, I highly suggest going through the\n[readthedocs](https://weave.readthedocs.io/en/latest)\n\n## Compatibility\n\nCheck out [compatibility charts](./COMPATIBILITY.md)\n\n## Protobuf Documentation\n\nWe generate documentation from the *.proto files to keep it up to date.\n\nYou can view the [documentation for all packages used in the `bns` app](http://htmlpreview.github.io/?https://github.com/iov-one/weave/blob/master/docs/proto/index.html).\n\nOr generate it yourself:\n\n```shell\nmake protodocs\nopen ./docs/proto/index.html\n```\n\n## Contributions\n\nWhen opening a pull request with a change that does not require a CHANGELOG\nentry, include `!nochangelog` in the description. This will inform our build\nsystem to not fail the build due to a missing CHANGELOG update. This\ninstruction is needed only if you are changing any of the Go source files.\n\n## History\n\nThe original version, until `v0.6.0` was released under\n`confio/weave`. The original author, Ethan Frey, had\npreviously worked on the\n[Cosmos SDK](https://github.com/cosmos/cosmos-sdk)\nand wanted to make a simpler framework he could use to\nstart building demo apps, while the main sdk matured.\nThus, `confio/weave` was born the first few months of 2018.\nThis framework was designed to be open source and shared,\nbut the only real usage and development was by\n[IOV](https://github.com/iov-one), so it was donated to\nthat organization in August 2018 to be developed further\nfor their BNS blockchain, as well as a companion to\n[iov-core](https://github.com/iov-one/iov-core)\nclient libraries that deprecated `confio/weave-js`\n\n## Audit\n\nCheck out our latest [audit report](https://github.com/iov-one/weave/tree/master/audit).\n\nThanks to [newfinal100](https://github.com/newfinal100) for designing the weave logo.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiov-one%2Fweave","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiov-one%2Fweave","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiov-one%2Fweave/lists"}