Diem Client SDKs is a collection of libraries and tools for creating applications integrated with Diem Payment Network. The goal of client SDK is to provide native language support for all aspects of integrations, communications, and protocols in the Diem ecosystem.
This codebase keeps track of SDK feature specifications and status for Diem Client SDKs development.
Module | Python | Java | Go | Rust | TypeScript | C# | C++ |
---|---|---|---|---|---|---|---|
BCS Runtime | ☀️ | ☀️ | ☀️ | ☀️ | ⛅ | ☀️ | ☀️ |
Transaction Builder Generator | ☀️ | ☀️ | ☀️ | ☀️ | ☀️ | ☀️ | ⛅ |
JSON-RPC Client | ⛅ | ⛅ | ⛅ | ⛅ | ⛅ | ❄️ | ⛈️ |
Multisignature | ❄️ #202 | ❄️ #69 | ☀️ | ☀️ | ❄️ | ❄️ | ❄️ |
Off-chain | ⛅ | ❄️ #71 | ❄️ #36 | ☁️ | ❄️ | ❄️ | ❄️ |
Faucet Client | ☀️ | ⛅ | ⛅ | ☀️ | ⛅ | ❄️ | ❄️ |
Packaging | ☀️ | ☀️ | ☀️ | ☀️ | ❄️ | ❄️ | ❄️ |
Verifying Client | 🧊 #201 | 🧊 #68 | 🧊 #38 | ⛅ | 🧊 | 🧊 | 🧊 |
Mini Wallet | ☀️ | 🧊 #70 | 🧊 #37 | ☁️ | 🧊 | 🧊 | 🧊 |
Feature | Python | Java | Go | Rust | TypeScript |
---|---|---|---|---|---|
JSON-RPC SPEC API | ☀️ | ☀️ | ☀️ | ☀️ | ☀️ |
Retry stale response error | ☀️ | ☀️ | ☀️ | ☀️ | ☁️ |
Wait for transaction execution | ☀️ | ☀️ | ☀️ | ☀️ | ☀️ |
Request strategy | ☀️ | ❄️ | ❄️ | ☀️ | ❄️ |
JSON-RPC Batch API | ❄️ | ❄️ | ❄️ | ☀️ | ❄️ |
Off-chain resource query APIs | ☀️ | ❄️ | ❄️ | ☁️ | ❄️ |
Async IO API | ❄️ | ❄️ | ❄️ | ☀️ | ❄️ |
User-Agent HTTP Header | ☀️ | ❄️ | ❄️ | ☀️ | ❄️ |
Feature | Python | Java | Go-lang | Rust | TypeScript |
---|---|---|---|---|---|
JWS | ☀️ | ❄️ | ❄️ | ☀️ | ❄️ |
Offchain Client | ☀️ | ❄️ | ❄️ | ☁️ | ❄️ |
Data Deserialization | ☀️ | ❄️ | ❄️ | ☀️ | ❄️ |
Data Validations | ☀️ | ❄️ | ❄️ | ☀️ | ❄️ |
Payment Command | ☀️ | ❄️ | ❄️ | ☀️ | ❄️ |
Fund Pull Pre-Approval Command | ☁️ | ❄️ | ❄️ | ❄️ | ❄️ |
Ping Command. | ☀️ | ❄️ | ❄️ | ❄️ | ❄️ |
ReferenceID Command | ☁️ | ❄️ | ❄️ | ❄️ | ❄️ |
☀️ : complete; documentation and examples improvements are welcome.
⛅ : feature works as MVP, but not fully match the specification, need improvement.
⛈️ : broken or out of dated.
☁️ : MVP in development, feature incomplete.
❄️ : frozen, feature development is not started, no one is planning or working on it.
🧊 : specification or reference implementation is working in progress, feature is not ready for development yet.
You may send a PR for adding new feature specifications or update SDKs' development status. For questions and discussions, please open an issue.
See CONTRIBUTING for more details.