A rust implementation of the ABCI protocol for tendermint core

Overview

🚨 DEPRECATED 🚨

This repo has been deprecated. Development work continues as the "abci" crate of informalsystems/tendermint-rs. Please reference that repository in the future.


Rust ABCI

Tendermint ABCI server, written in the Rust programming language.

Current Version CircleCI

This library implements the ABCI protocol and can be used to write ABCI applications for Tendermint.

Supported Version

  • Tendermint 0.33.6
  • ABCI 0.16.2

Installation

Dependencies

Make sure that you have Rust and Cargo installed. The easiest way is to follow the instructions on rustup.

To test the examples, please clone this repository.

git clone https://github.com/tendermint/rust-abci.git

The empty_app example, found under the examples folder, is a good demonstration/bare minimum foundation for a Rust ABCI app.

To use this library to build your own ABCI apps in Rust you have to include the following in your Cargo.toml file.

[dependencies]
abci = "0.7.2"

Development

This crate already contains the compiled ABCI protobuf messages. If you want to update protobuf messages to a newer version of Tendermint. Run make update-proto

Running the examples

Tendermint

To run either of the example apps you have to have Tendermint installed and initialised (Remember to run tendermint init!). Please install it according to these instructions. After initializing and configuring the node, Tendermint can be run with:

tendermint node

After the node is online, you can run the empty_app example using cargo run --example empty_app.

To run the counter_app run cargo run --example counter_app and send transaction to Tendermint via:

curl localhost:26657/broadcast_tx_commit?tx=0x01
curl localhost:26657/broadcast_tx_commit?tx=0x02

For a real life example of an ABCI application you can checkout Cosmos SDK or Ethermint.

Tendermint Compatibility Table

Tendermint Rust-abci
0.33.6 0.7.2
0.33.5 0.7.1
0.33.1 0.7.0
0.32.9 0.6.5
0.31.7 0.5.4

Documentation

Coming soon!

Join the Community

Find us through a variety of channels here.

Code of Conduct

Please read, understand and adhere to our code of conduct.

Credits

Original rust-tsp made by Adrian Brink.

Comments
  • Rearchitecting Rust ABCI

    Rearchitecting Rust ABCI

    as discussed in https://github.com/tendermint/rust-abci/pull/50 https://github.com/tendermint/rust-abci/issues/31

    there are 3 connections:

    • consensus
    • info
    • mempool

    messages exchanges in info and mempool connections probably do not require to borrow ABCI applications as mutable, so it may be possible to rearchitect ABCI without having the mutex on the entire application (so that, for example, CheckTX/Info/Query can be processed while consensus operations are going)

    opened by tomtau 56
  • Asynchronous processing

    Asynchronous processing

    As mentioned in: https://github.com/tendermint/rust-abci/pull/21#issuecomment-443080088 Currently, there's one mutex and synchronous IO, but not much reason for that. Mempool/info connections may not need to mutate the app state + The Tendermint ABCI specs say:

    Thus, DeliverTx and CheckTx messages are sent asynchronously, while all other messages are sent synchronously.

    opened by tomtau 21
  • Make compatible with Tendermint v0.22

    Make compatible with Tendermint v0.22

    This PR changes a lot of things about rust-tsp, allowing it to be compatible with Tendermint v0.22. These changes include:

    • Change of package name from tsp to abci
    • An update of the package version to 0.3.0
    • Using protobuf-codegen-pure to auto-generate types.rs without having to install protoc separately.
    • Removing the echo and flush methods from the Application trait. All other implementations I've seen of the protocol handle those requests in the backend, because why should they even be configurable?
    • Also, the functions passed to the Application use &mut self, because otherwise, you couldn't update any internal state, thus defeating the point of an ABCI app!
    • And then, of course, changes in the backend to be compatible with the latest version of Tendermint:
      • Decoding now uses varints instead of the custom Tendermint decoding method that got dropped in v0.16.
      • Decoding also splits the incoming bytes down the wire into several requests, because Tendermint v0.16 (and above) sends a Flush request in the same message as another request. This and the varint decoding were the primary points of incompatibility.
      • As a result of the previous change, I had to drop tokio-proto and the entire Tokio framework, because it sent asyncronous responses that could be received out of order by Tendermint, not to mention that it was impossible to decode two different requests in one TCP message and return them in separate TCP messages. Instead, I made a basic multi-threaded ABCI server that not only fixed this issues, but was also more efficient and modifiable.

    So that's the summary of the changes made, and I hope that these fixes will get more people interested in using the library again.

    opened by InquisitivePenguin 13
  • More updates and improvements

    More updates and improvements

    This pull requests provides the following:

    • Better generation and management of ABCI protobuf messages
    • Improved Request/Response handling. Builds on @tomtau 's work. Now both requests and response can handle messages larger then the previous fixed sized buffer.
    • Some refactor and clean-up
    • A few more tests
    opened by davebryson 12
  • 2018 edition

    2018 edition

    Very small PR that just makes the code 2018 edition compatible (followed this: https://doc.rust-lang.org/edition-guide/editions/transitioning-an-existing-project-to-a-new-edition.html).

    @tomtau: when I run cargo build, I see changes in the proto generated rust files (nothing relevant, only in file_descriptor_proto_data). Mind checking out that branch and run cargo build on your machine. Do you also see changes in the abci.rs, merkle.rs, types.rs?

    ref: #60 #74 #70

    • [x] Linked to github-issue with discussion and accepted design OR link to spec that describes this work. ~~- [ ] Wrote tests~~ ~~- [ ] Updated relevant documentation (docs/)~~ ~~- [ ] Added a relevant changelog entry: clog add [section] [stanza] [message]~~
    • [x] Reviewed Files changed in the github PR explorer ~~- [ ] Bump Tendermint & ABCI version in README.md if version was updated~~

    For Admin Use:

    • Added appropriate labels to PR (ex. wip, ready-for-review, docs)
    • Reviewers Assigned
    • Squashed all commits, uses message "Merge pull request #XYZ: [title]" (coding standards)
    opened by liamsi 8
  • [WIP] Separate server from protocol and application

    [WIP] Separate server from protocol and application

    Example of design proposed at https://github.com/tendermint/rust-abci/issues/61#issuecomment-548232557

    • Targeted PR against correct branch (see CONTRIBUTING.md)

    • [ ] Linked to github-issue with discussion and accepted design OR link to spec that describes this work.

    • [ ] Wrote tests

    • [ ] Updated relevant documentation (docs/)

    • [ ] Added a relevant changelog entry: clog add [section] [stanza] [message]

    • [ ] Reviewed Files changed in the github PR explorer

    • [ ] Bump Tendermint & ABCI version in README.md if version was updated


    For Admin Use:

    • Added appropriate labels to PR (ex. wip, ready-for-review, docs)
    • Reviewers Assigned
    • Squashed all commits, uses message "Merge pull request #XYZ: [title]" (coding standards)
    opened by gterzian 6
  • Incompatible with Tendermint 0.16

    Incompatible with Tendermint 0.16

    Due to https://github.com/tendermint/abci/issues/205, this implementation has become incompatible with Tendermint v0.16 and newer.

    The breakage was caused by how varints are now encoded. Instead of a custom encoding, Tendermint now uses the protobuf default approach of ZigZag encoding. rust-protobuf seems to support that encoding (see doc).

    The update likely also requires syncing src/types.proto to the one in tendermint/abci (as far as I understand, it needs to be v1.10+). I already tried that (manually with protoc on the cmdline), but didn't yet manage to compile the included https://github.com/tendermint/abci/blob/master/types/types.proto such that the types KVPair and KI64Pairget properly included and namespaced.

    Btw. the README lacks the information that protobuf support needs to be installed on the system.

    opened by d10r 5
  • Fix unique, refactor, add docs, add counter example

    Fix unique, refactor, add docs, add counter example

    This pull requests resolve issue #17. std::ptr::Unique is no longer part of the latest Rust. The approach used in this pull request uses the more conventional approach of using an Atomic wrapper.

    I also did a bit of code refactoring and clean-up:

    • Provided default functions in the Application trait. User's need to only override what's needed
    • Updated the EmptyApp
    • Added a bit more documentation
    • Added full counter example

    More to come...

    opened by davebryson 4
  • Update protobuf requirement from = 2.11.0 to = 2.12.0

    Update protobuf requirement from = 2.11.0 to = 2.12.0

    Updates the requirements on protobuf to permit the latest version.

    Changelog

    Sourced from protobuf's changelog.

    [2.11.0] - 2020-03-23

    Backward compatibility

    • Rename ProtobufValueRef to ReflectValueRef. Old name is kept for a while.

    Other changes

    • Generated code now uses associated constant Lazy::INIT for Lazy intialization instead of initializing fields directly.

    [2.10.3] - 2020-03-23

    • Oneof names are escaped now in generated code

    [2.10.2] - 2020-03-01

    • Added dyn to a list of rust keyword needed escaping

    [2.10.1] - 2020-01-14

    [2.10.0] - 2020-01-01

    Backward compatibility

    Other changes

    [2.9] - Unreleased

    Changes in 2.9 branch are not included in 2.10.

    [2.9.0] - (2019-09-30) yanked

    Backward compatibility

    • Minimum supported Rust version is 1.34.2 now
    • Generated code by protobuf compiler is now compatible only with exactly the same version of protobuf library. Note you can use
    ... (truncated)
    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 3
  • proto: update proto files & add third_party

    proto: update proto files & add third_party

    This PR contains updates to proto files associated with 0.33 and also changes in https://github.com/tendermint/tendermint/pull/4304

    • Targeted PR against correct branch (see CONTRIBUTING.md)

    • [ ] Linked to github-issue with discussion and accepted design OR link to spec that describes this work.

    • [ ] Wrote tests

    • [ ] Updated relevant documentation (docs/)

    • [ ] Added a relevant changelog entry: clog add [section] [stanza] [message]

    • [ ] Reviewed Files changed in the github PR explorer

    • [ ] Bump Tendermint & ABCI version in README.md if version was updated


    For Admin Use:

    • Added appropriate labels to PR (ex. wip, ready-for-review, docs)
    • Reviewers Assigned
    • Squashed all commits, uses message "Merge pull request #XYZ: [title]" (coding standards)
    dependencies 
    opened by tac0turtle 3
  • fail CI if the PR didn't run `cargo build`

    fail CI if the PR didn't run `cargo build`

    related to #38 because i went to manually publish the crate and running cargo build updated some files that I think should be already updated (still figuring out rust)

    opened by zramsay 3
  • Update tokio-util requirement from 0.3.1 to 0.6.4

    Update tokio-util requirement from 0.3.1 to 0.6.4

    Updates the requirements on tokio-util to permit the latest version.

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 0
  • Update integer-encoding requirement from 1.1.5 to 3.0.2

    Update integer-encoding requirement from 1.1.5 to 3.0.2

    Updates the requirements on integer-encoding to permit the latest version.

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 0
  • Update tokio requirement from 0.2 to 1.1

    Update tokio requirement from 0.2 to 1.1

    Updates the requirements on tokio to permit the latest version.

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 0
  • Update bytes requirement from 0.5 to 1.0

    Update bytes requirement from 0.5 to 1.0

    Updates the requirements on bytes to permit the latest version.

    Release notes

    Sourced from bytes's releases.

    bytes v1.0.0

    Commit to a public API with long-term support.

    Changed

    • Rename Buf/BufMut, methods to chunk/chunk_mut (#450)

    Removed

    • remove unused Buf implementation. (#449)
    Changelog

    Sourced from bytes's changelog.

    1.0.0 (December 22, 2020)

    Changed

    • Rename Buf/BufMut, methods to chunk/chunk_mut (#450)

    Removed

    • remove unused Buf implementation. (#449)

    0.6.0 (October 21, 2020)

    API polish in preparation for a 1.0 release.

    Changed

    • BufMut is now an unsafe trait (#432).
    • BufMut::bytes_mut() returns &mut UninitSlice, a type owned by bytes to avoid undefined behavior (#433).
    • Buf::copy_to_bytes(len) replaces Buf::into_bytes() (#439).
    • Buf/BufMut utility methods are moved onto the trait and *Ext traits are removed (#431).

    Removed

    • BufMut::bytes_vectored_mut() (#430).
    • new methods on combinator types (#434).

    0.5.6 (July 13, 2020)

    • Improve BytesMut to reuse buffer when fully advanced.
    • Mark BytesMut::{as_mut, set_len} with #[inline].
    • Relax synchronization when cloning in shared vtable of Bytes.
    • Move loom to dev-dependencies.

    0.5.5 (June 18, 2020)

    Added

    • Allow using the serde feature in no_std environments (#385).

    Fix

    • Fix BufMut::advance_mut to panic if advanced passed the capacity (#354)..
    • Fix BytesMut::freeze ignoring amount previously advanced (#352).

    0.5.4 (January 23, 2020)

    Added

    • Make Bytes::new a const fn.
    • Add From<BytesMut> for Bytes.

    Fix

    • Fix reversed arguments in PartialOrd for Bytes.
    • Fix Bytes::truncate losing original capacity when repr is an unshared Vec.
    • Fix Bytes::from(Vec) when allocator gave Vec a pointer with LSB set.
    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 0
  • Update protobuf requirement from = 2.16.2 to = 2.17.0

    Update protobuf requirement from = 2.16.2 to = 2.17.0

    Updates the requirements on protobuf to permit the latest version.

    Changelog

    Sourced from protobuf's changelog.

    [2.16.2] - 2020-07-06

    • Fix compilation when feature with-bytes is enabled

    [2.16.1] - 2020-07-06

    • Mute self-deprecation warning when compiling rust-protobuf

    [2.16.0] - 2020-07-06

    • Generated repeated and message fields for proto2 are public now (for proto3 all fields are already public).
    • Generated code no longer contains unsafe
    • Minor changes in generated files

    [2.15.1] - 2020-06-26

    [2.15.0] - 2020-06-21

    • Min supported rust version if 1.44.1 now
    • Replace deprecated #![cfg_attr(rustfmt, rustfmt_skip)] with #![rustfmt::skip]

    [2.14.0] - 2020-04-12

    • Rename protoc_rust::Args to protoc_rust::Codegen
    • Rename protobuf_codegen_pure::Args to protobuf_codegen_pure::Codegen
    • protoc-bin-vendored crate introduced

    [2.13.0] - 2020-04-09

    [2.12.0] - 2020-03-26

    • Generated code for reflection now references messages by Protobuf name, not by Rust name.

    [2.11.0] - 2020-03-23

    Backward compatibility

    • Rename ProtobufValueRef to ReflectValueRef. Old name is kept for a while.

    Other changes

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 0
  • Update protobuf-codegen-pure requirement from = 2.16.2 to = 2.17.0

    Update protobuf-codegen-pure requirement from = 2.16.2 to = 2.17.0

    Updates the requirements on protobuf-codegen-pure to permit the latest version.

    Changelog

    Sourced from protobuf-codegen-pure's changelog.

    [2.16.2] - 2020-07-06

    • Fix compilation when feature with-bytes is enabled

    [2.16.1] - 2020-07-06

    • Mute self-deprecation warning when compiling rust-protobuf

    [2.16.0] - 2020-07-06

    • Generated repeated and message fields for proto2 are public now (for proto3 all fields are already public).
    • Generated code no longer contains unsafe
    • Minor changes in generated files

    [2.15.1] - 2020-06-26

    [2.15.0] - 2020-06-21

    • Min supported rust version if 1.44.1 now
    • Replace deprecated #![cfg_attr(rustfmt, rustfmt_skip)] with #![rustfmt::skip]

    [2.14.0] - 2020-04-12

    • Rename protoc_rust::Args to protoc_rust::Codegen
    • Rename protobuf_codegen_pure::Args to protobuf_codegen_pure::Codegen
    • protoc-bin-vendored crate introduced

    [2.13.0] - 2020-04-09

    [2.12.0] - 2020-03-26

    • Generated code for reflection now references messages by Protobuf name, not by Rust name.

    [2.11.0] - 2020-03-23

    Backward compatibility

    • Rename ProtobufValueRef to ReflectValueRef. Old name is kept for a while.

    Other changes

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 0
Releases(v0.1.0)
  • v0.1.0(Jun 16, 2017)

    Most von Lipwig: “We can't just drop everything, sir!"
    Vetinari: "Mister Lipwig. Is there something in the word 'tyrant' you do not understand?”
    

    Changelog

    • Working implementation of a rust ABCI server
    Source code(tar.gz)
    Source code(zip)
Owner
Tendermint
Building the most powerful tools for Cosmos. Investing in teams building the economy of the future. What will you build?
Tendermint
Tendermint in Rust!

tendermint.rs Tendermint in Rust with TLA+ specifications. Tendermint is a high-performance blockchain consensus engine for Byzantine fault tolerant a

Informal Systems 447 Jan 7, 2023
Core contracts for Suberra Protocol.

Suberra Core Contracts Core contracts for Suberra. Contract Description product-factory Factory that handles the instantiation and creation of the pro

Suberra Protocol 4 Dec 12, 2022
Core Rust-C FFI for Stackmate Wallet.

STACKMATE-CORE A Rust-C FFI library exposing composite functionality from rust-bitcoin & bdk; to create cross-platform descriptor wallets. Currently u

Vishal Menon 5 May 31, 2022
Enigma Core library. The domain: Trusted and Untrusted App in Rust.

Enigma Core library Service Master Develop CI Badge Pure Rust Enclave && Untrusted in Rust. Core is part of the Enigma node software stack. The Core c

SCRT Labs 89 Sep 14, 2022
Daemon and tools to control your ASUS ROG laptop. Supersedes rog-core.

asusctl for ASUS ROG - Asus Linux Website asusd is a utility for Linux to control many aspects of various ASUS laptops but can also be used with non-a

Luke Jones 46 Jan 8, 2023
EXPERIMENTAL: Bitcoin Core Prometheus exporter based on User-Space, Statically Defined Tracing and eBPF.

bitcoind-observer An experimental Prometheus metric exporter for Bitcoin Core based on Userspace, Statically Defined Tracing and eBPF. This demo is ba

0xB10C 24 Nov 8, 2022
Opendp - The core library of differential privacy algorithms powering the OpenDP Project.

OpenDP The OpenDP Library is a modular collection of statistical algorithms that adhere to the definition of differential privacy. It can be used to b

OpenDP 176 Dec 27, 2022
Aptos-core strives towards being the safest and most scalable layer one blockchain solution.

Aptos-core strives towards being the safest and most scalable layer one blockchain solution. Today, this powers the Aptos Devnet, tomorrow Mainnet in order to create universal and fair access to decentralized assets for billions of people.

Aptos Labs 4.7k Jan 6, 2023
Dexios-Core is a library used for managing cryptographic functions and headers that adhere to the Dexios format.

What is it? Dexios-Core is a library used for managing cryptographic functions and headers that adhere to the Dexios format. Security Dexios-Core uses

brxken 3 Jul 4, 2022
Matt's ASCII Game Engine core crate

MAGE Engine Core crate A 100% safe Rust ASCII game engine for writing text-based tools or tile-based games similar to traditional Rogue-likes. This cr

null 29 May 25, 2023
Official Rust implementation of the Nimiq protocol

Nimiq Core implementation in Rust (core-rs) Rust implementation of the Nimiq Blockchain Core Nimiq is a frictionless payment protocol for the web. Thi

Nimiq 72 Sep 23, 2022
Rust implementation of Zcash protocol

The Parity Zcash client. Gitter Blog: Parity teams up with Zcash Foundation for Parity Zcash client Installing from source Installing the snap Running

Parity Technologies 183 Sep 8, 2022
A prototype implementation of the Host Identity Protocol v2 for bare-metal systems, written in pure-rust.

Host Identity Protocol for bare-metal systems, using Rust I've been evaluating TLS replacements in constrained environments for a while now. Embedded

null 31 Dec 12, 2022
A Rust implementation of the Message Layer Security group messaging protocol

Molasses An extremely early implementation of the Message Layer Security group messaging protocol. This repo is based on draft 4 of the MLS protocol s

Trail of Bits 109 Dec 13, 2022
Ecoball Node is the Official Rust implementation of the Ecoball protocol.

Ecoball Node is the Official Rust implementation of the Ecoball protocol. It is a fork of OpenEthereum - https://github.com/openethereum/

Ecoball Chain 2 Jun 9, 2022
Open source Rust implementation of the Witnet decentralized oracle protocol, including full node and wallet backend 👁️🦀

witnet-rust is an open source implementation of the Witnet Decentralized Oracle Network protocol written in Rust. Components witnet-rust implements ma

The Witnet Project 155 Nov 21, 2022
The Rust implementation of Conflux protocol.

Conflux-Rust Conflux-rust is a Rust-based implementation of the Conflux protocol. It is fast and reliable. Please follow the Conflux Documentation to

Conflux 562 Jan 7, 2023
In addition to encryption library, pure RUST implementation of SSH-2.0 client protocol

In addition to encryption library, pure RUST implementation of SSH-2.0 client protocol

陈年旧事。 73 Jan 1, 2023
Next-generation implementation of Ethereum protocol ("client") written in Rust, based on Erigon architecture.

?? Martinez ?? Next-generation implementation of Ethereum protocol ("client") written in Rust, based on Erigon architecture. Why run Martinez? Look at

Arthur·Thomas 23 Jul 3, 2022