Crates.io | adb_client |
lib.rs | adb_client |
version | 2.1.16 |
created_at | 2022-01-05 10:08:23.355008+00 |
updated_at | 2025-08-03 15:36:21.509654+00 |
description | Rust ADB (Android Debug Bridge) client library |
homepage | |
repository | https://github.com/cocool97/adb_client |
max_upload_size | |
id | 508307 |
size | 224,894 |
Rust library implementing ADB protocol.
Add adb_client
crate as a dependency by simply adding it to your Cargo.toml
:
[dependencies]
adb_client = "*"
Benchmarks run on v2.0.6
, on a Samsung S10 SM-G973F device and an Intel i7-1265U CPU laptop
ADBServerDevice
push vs adb push
ADBServerDevice
performs all operations by using adb server as a bridge.
File size | Sample size | ADBServerDevice |
adb |
Difference |
---|---|---|---|---|
10 MB | 100 | 350,79 ms | 356,30 ms | -1,57 % |
500 MB | 50 | 15,60 s | 15,64 s | -0,25 % |
1 GB | 20 | 31,09 s | 31,12 s | -0,10 % |
use adb_client::ADBServer;
use std::net::{SocketAddrV4, Ipv4Addr};
// A custom server address can be provided
let server_ip = Ipv4Addr::new(127, 0, 0, 1);
let server_port = 5037;
let mut server = ADBServer::new(SocketAddrV4::new(server_ip, server_port));
server.devices();
use adb_client::{ADBServer, ADBDeviceExt};
let mut server = ADBServer::default();
let mut device = server.get_device().expect("cannot get device");
device.shell_command(&["df", "-h"], &mut std::io::stdout());
use adb_client::ADBServer;
use std::net::Ipv4Addr;
use std::fs::File;
use std::path::Path;
let mut server = ADBServer::default();
let mut device = server.get_device().expect("cannot get device");
let mut input = File::open(Path::new("/tmp/f")).expect("Cannot open file");
device.push(&mut input, "/data/local/tmp");
use adb_client::{ADBUSBDevice, ADBDeviceExt};
let vendor_id = 0x04e8;
let product_id = 0x6860;
let mut device = ADBUSBDevice::new(vendor_id, product_id).expect("cannot find device");
device.shell_command(&["df", "-h"], &mut std::io::stdout());
use adb_client::{ADBUSBDevice, ADBDeviceExt};
use std::fs::File;
use std::path::Path;
let vendor_id = 0x04e8;
let product_id = 0x6860;
let mut device = ADBUSBDevice::new(vendor_id, product_id).expect("cannot find device");
let mut input = File::open(Path::new("/tmp/f")).expect("Cannot open file");
device.push(&mut input, &"/data/local/tmp");
use std::net::{SocketAddr, IpAddr, Ipv4Addr};
use adb_client::{ADBTcpDevice, ADBDeviceExt};
let device_ip = IpAddr::V4(Ipv4Addr::new(192, 168, 0, 10));
let device_port = 43210;
let mut device = ADBTcpDevice::new(SocketAddr::new(device_ip, device_port)).expect("cannot find device");
device.shell(&mut std::io::stdin(), Box::new(std::io::stdout()));