For those of you familiar with Nethereum, it serves a very similar purpose, except targeting developers on the Java Virtual Machine (JVM) platform, so can be used with all of the JVM languages - Java, Scala, Clojure, Groovy and Kotlin.
It is not intended to be a full client, like Geth, Parity, Eth or EthereumJ, , it’s goal is to provide a simple interface to talk to any one of these full clients.
The current release provides full support for Ethereum's JSON-RPC API over HTTP.
The following functionality is next on the roadmap:
- Geth Management API support
- Offline transaction signing
- IPC interface support
- WebSocket interface support
It provides both asynchronous and synchronous communication with nodes, and it emphasises simplicity of use:
Web3j web3 = Web3j.build(new HttpService()); // defaults to http://localhost:8545/ Web3ClientVersion web3ClientVersion = web3.web3ClientVersion().sendAsync().get(); String clientVersion = web3ClientVersion.getWeb3ClientVersion(); ...