All Projects → philippgille → Libra Sdk Go

philippgille / Libra Sdk Go

Licence: mpl-2.0
Go SDK for the Libra cryptocurrency

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Libra Sdk Go

Rpc Thunderdome
A comparison between Proteus RPC and other commonly used RPC frameworks
Stars: ✭ 22 (-4.35%)
Mutual labels:  grpc, rpc
Javaspringbootsamples
SpringBoot、Dubbo、SpringCloud的各种集成例子:Atomikos、gRPC、Thrift、Seata、ShardingSphere、Dubbo、Hmily、Nacos、Consul、Ribbon、Jedis、Lettuce、Redisson等框架
Stars: ✭ 399 (+1634.78%)
Mutual labels:  grpc, rpc
Akka Grpc
Akka gRPC
Stars: ✭ 361 (+1469.57%)
Mutual labels:  grpc, rpc
Joyrpc
high-performance, high-extensibility Java rpc framework.
Stars: ✭ 290 (+1160.87%)
Mutual labels:  grpc, rpc
Js Stellar Sdk
Main Stellar client library for the Javascript language
Stars: ✭ 488 (+2021.74%)
Mutual labels:  cryptocurrency, sdk
Gb28181.solution
Linux/Win/Docker/kubernetes/Chart/Kustomize/GB28181/SIP/RTP/SDP/WebRTC/作为上下级域/平台级联互联
Stars: ✭ 323 (+1304.35%)
Mutual labels:  grpc, rpc
Huobi python
Python SDK for Huobi Spot API
Stars: ✭ 391 (+1600%)
Mutual labels:  cryptocurrency, sdk
Dynamixelsdk
ROBOTIS Dynamixel SDK (Protocol1.0/2.0)
Stars: ✭ 266 (+1056.52%)
Mutual labels:  sdk, package
Alibaba Rsocket Broker
Alibaba RSocket Broker: Mesh, Streaming & IoT
Stars: ✭ 485 (+2008.7%)
Mutual labels:  grpc, rpc
Rpc Benchmark
java rpc benchmark, 灵感源自 https://www.techempower.com/benchmarks/
Stars: ✭ 463 (+1913.04%)
Mutual labels:  grpc, rpc
Armeria
Your go-to microservice framework for any situation, from the creator of Netty et al. You can build any type of microservice leveraging your favorite technologies, including gRPC, Thrift, Kotlin, Retrofit, Reactive Streams, Spring Boot and Dropwizard.
Stars: ✭ 3,392 (+14647.83%)
Mutual labels:  grpc, rpc
Brpc Java
Java implementation for Baidu RPC, multi-protocol & high performance RPC.
Stars: ✭ 647 (+2713.04%)
Mutual labels:  grpc, rpc
Flatbuffers
FlatBuffers: Memory Efficient Serialization Library
Stars: ✭ 17,180 (+74595.65%)
Mutual labels:  grpc, rpc
Tonic
A native gRPC client & server implementation with async/await support.
Stars: ✭ 4,422 (+19126.09%)
Mutual labels:  grpc, rpc
Yarpc Go
A message passing platform for Go
Stars: ✭ 285 (+1139.13%)
Mutual labels:  grpc, rpc
Go Api Boilerplate
Go Server/API boilerplate using best practices DDD CQRS ES gRPC
Stars: ✭ 373 (+1521.74%)
Mutual labels:  grpc, rpc
thinkgo
Public libraries and components for glang development.
Stars: ✭ 14 (-39.13%)
Mutual labels:  grpc, rpc
tsrpc
A TypeScript RPC framework, with runtime type checking and serialization, support both HTTP and WebSocket. It is very suitable for website / APP / games, and absolutely comfortable to full-stack TypeScript developers.
Stars: ✭ 866 (+3665.22%)
Mutual labels:  grpc, rpc
Airframe
Essential Building Blocks for Scala
Stars: ✭ 442 (+1821.74%)
Mutual labels:  grpc, rpc
Rpcx
Best microservices framework in Go, like alibaba Dubbo, but with more features, Scale easily. Try it. Test it. If you feel it's better, use it! 𝐉𝐚𝐯𝐚有𝐝𝐮𝐛𝐛𝐨, 𝐆𝐨𝐥𝐚𝐧𝐠有𝐫𝐩𝐜𝐱!
Stars: ✭ 6,516 (+28230.43%)
Mutual labels:  grpc, rpc

libra-sdk-go

GoDoc Build Status Go Report Card

Go SDK for the Libra cryptocurrency

Note: This is work in progress! The API is not stable and will definitely change in the future!
This package uses proper semantic versioning though, so you can use vendoring or Go modules to prevent breaking your build.
The changelog of this package can be viewed here

Features

  • Get account state with account resource (balance, auth key, sent and received events count, sequence no)
  • Send transaction (raw bytes)

Roadmap

  • Instead of the current Transaction struct that only takes RawBytes, a higher level transaction struct will be added with fields for the sender and receiver address as well as amount of Libra Coins to send.
  • A wallet package will be added that can read a recovery file or take a recovery seed string and create accounts with their public/private keypairs from that
  • And much more...

Usage

Example:

package main

import (
    "fmt"
    "time"

    libra "github.com/philippgille/libra-sdk-go"
)

func main() {
    c, err := libra.NewClient("ac.testnet.libra.org:8000", time.Second)
    if err != nil {
        panic(err)
    }
    defer c.Close()

    acc := "8cd377191fe0ef113455c8e8d769f0c0147d5bb618bf195c0af31a05fbfd0969"
    accState, err := c.GetAccountState(acc)
    if err != nil {
        panic(err)
    }

    fmt.Printf("Raw account state: 0x%x\n", accState.Blob)
    fmt.Println()
    fmt.Printf("Account resource: %v\n", accState.AccountResource)
}

Currently prints:

Raw account state: 0x010000002100000001217da6c6b3e19f1825cfb2676daecce3bf3de03cf26647c78df00b371b25cc9744000000200000008cd377191fe0ef113455c8e8d769f0c0147d5bb618bf195c0af31a05fbfd0969a0acb90300000000010000000000000004000000000000000400000000000000

Account resource: {"authentication_key": "0x8cd377191fe0ef113455c8e8d769f0c0147d5bb618bf195c0af31a05fbfd0969", "balance": "62500000", "received_events_count": "1", "sent_events_count": "4", "sequence_number": "4"}

Develop

The proto files are taken from the Libra repository, commit 4e27604264bd0a5d6c64427f738cbc84d9258a61.

For updating the rpc package you currently need to manually update the proto files, make some changes (e.g. go_package option) and then run the Go code generation script: scripts/generate_rpc.sh

Related projects

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].