rust-web3

Ethereum JSON-RPC multi-transport client. Rust implementation of web3 library.

  • Owner: tomusdrw/rust-web3
  • Platform:
  • License:: MIT License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

rust-web3

Ethereum JSON-RPC multi-transport client.
Rust implementation of Web3.js library.

Build Status

Documentation

Usage

First, add this to your Cargo.toml:

[dependencies]
web3 = { git = "https://github.com/tomusdrw/rust-web3" }

Next, add this to your crate:

extern crate web3;

Examples

extern crate web3;

use web3::futures::Future;

fn main() {
  let (_eloop, transport) = web3::transports::Http::new("http://localhost:8545").unwrap();

  let web3 = web3::Web3::new(transport);
  let accounts = web3.eth().accounts().wait().unwrap();

  println!("Accounts: {:?}", accounts);
}

If you want to deploy smart contracts you have written you can do something like this (make sure you have the solidity compiler installed):

solc -o build --bin --abi contracts/*.sol

The solidity compiler is generating the binary and abi code for the smart contracts in a directory called contracts and is being output to a directory called build.

For more see examples folder.

General

  • More flexible API (accept Into<X>)
  • Contract calls (ABI encoding; debris/ethabi)
  • Batch Requests

Transports

  • HTTP transport
  • IPC transport
  • WebSockets transport

Types

  • Types for U256,H256,Address(H160)
  • Index type (numeric, encoded to hex)
  • Transaction type (Transaction from Parity)
  • Transaction receipt type (TransactionReceipt from Parity)
  • Block type (RichBlock from Parity)
  • Work type (Work from Parity)
  • Syncing type (SyncStats from Parity)

APIs

  • Eth: eth_*
  • Eth filters: eth_*
  • Eth pubsub: eth_*
  • net_*
  • web3_*
  • personal_*
  • traces_*

Parity-specific APIs

  • Parity read-only: parity_*

  • Parity accounts: parity_* (partially implemented)

  • Parity set: parity_*

  • signer_*

  • Own APIs (Extendable)

let web3 = Web3::new(transport);
web3.api::<CustomNamespace>().custom_method().wait().unwrap()

Installation on Windows

Currently, Windows does not support IPC, which is enabled in the library by default.
To complile, you need to disable IPC feature:

web3 = { version = "0.1.0", default-features = false, features = ["http"] }

Main metrics

Overview
Name With Ownertomusdrw/rust-web3
Primary LanguageRust
Program languageRust (Language Count: 1)
Platform
License:MIT License
所有者活动
Created At2016-12-28 00:40:20
Pushed At2024-09-11 14:51:07
Last Commit At2024-09-11 17:51:07
Release Count25
Last Release Namev0.19.0 (Posted on )
First Release Namev0.0.3 (Posted on )
用户参与
Stargazers Count1.5k
Watchers Count27
Fork Count474
Commits Count412
Has Issues Enabled
Issues Count304
Issue Open Count93
Pull Requests Count317
Pull Requests Open Count7
Pull Requests Close Count105
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private