asic-rs

asic-rs is a miner management and control library, designed to abstract away the complexity of working with different types of ASIC miners.
Getting Started
The first step to controlling a miner with asic-rs is to get the struct that represents it, with methods used for data gathering and control.
Getting a miner
If you know the IP address of your miner, it is fairly easy to discover it. Use the MinerFactory to select the correct type.
use MinerFactory;
use FromStr;
use IpAddr;
use tokio;
async
Miner discovery
If you don’t know the specific IP of your miner, asic-rs can discover it on your network.
use MinerFactory;
use FromStr;
use tokio;
async
There are other ways to define a discovery range to be scanned, such as:
- Octets
let factory = from_octets.unwrap;
- Range string
let factory = from_range.unwrap;
These also have corresponding methods for appending to an existing factory, or overwriting existing ranges.
See MinerFactory for more details.
Data gathering
Getting data is very simple with asic-rs, everything you need can be gathered with a single call. Extending the “Getting a miner” example:
use MinerFactory;
use FromStr;
use IpAddr;
use tokio;
async
If you only want specific data, that can be done with individual function calls:
let mac = miner.get_mac.await;
Most data points from MinerData have a corresponding get_... function.
See the GetMinerData trait for more info.
Miner control
Controlling a miner is very similar to getting data in asic-rs.
Each miner has some control functions defined by the HasMinerControl trait.
Again extending the “Getting a miner” example:
use MinerFactory;
use FromStr;
use IpAddr;
use tokio;
async