Bitcoin JSON RPC
We’re excited to announce btcrpcclient, a new Websocket-enabled Bitcoin JSON-RPC client package written in Go. This package allows you to quickly create robust Bitcoin RPC clients in just a few minutes.
Major Features of the btcrpcclient Package
- Supports Websockets (btcd and btcwallet) and HTTP POST mode (Bitcoin Core)
- Provides callback and registration functions for btcd and btcwallet notifications
- Supports btcd and btcwallet extensions
- Translates to and from high-level statically-typed Go types
- Offers a synchronous (blocking) and asynchronous (non-blocking) API
- When running in Websockets mode (the default):
- Provides automatic reconnect handling (can be disabled if desired)
- Outstanding commands are automatically reissued on reconnect
- Registered notifications are automatically re-registered on reconnect
- Back-off support on reconnect attempts
But Go is “exotic”!
I wanted to respond to some comments in regards to Go being “exotic” or other similar comments that we’ve seen made by a handful of unenlightened individuals.
If you’re not familiar with Go, you really should do yourself a favor and spend some time learning it. If you already know C, C++, Java (or anything even close to them), you will surely be able to pick up Go easily and will notice how much more productive you are with it compared to C, C++, or Java.
Your code will also likely be much cleaner, easier to reason about, and more robust in general. This is especially true when it comes to concurrent code, and let’s face it, when are you not writing concurrent applications these days?
For reference, I have used C, C++, and Java extensively in professional environments for the better part of two decades, so these comments are highly informed. The bottom line is Go is just, hands down, better for writing robust concurrent applications.
My hope is that this will quell any concerns you might have about choosing Go. You will be happy you did.