diff --git a/adb_client/README.md b/adb_client/README.md index 40e4911..cc01cc9 100644 --- a/adb_client/README.md +++ b/adb_client/README.md @@ -27,9 +27,15 @@ To deactivate some features you can use the `default-features = false` option in ```toml [dependencies] -adb_client = { version = "*", default-features = false, features=[""] } +adb_client = { version = "*" } ``` +## Examples + +Usage examples can be found in the `examples/` directory of this repository. + +Some example are also provided in the various `README.md` files of modules. + ## Benchmarks Benchmarks run on `v2.0.6`, on a **Samsung S10 SM-G973F** device and an **Intel i7-1265U** CPU laptop @@ -43,84 +49,3 @@ Benchmarks run on `v2.0.6`, on a **Samsung S10 SM-G973F** device and an **Intel | 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 %
| - -## Examples - -### Get available ADB devices - -```rust no_run -use adb_client::server::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(); -``` - -### Using ADB server as bridge - -#### Launch a command on device - -```rust no_run -use adb_client::{server::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()); -``` - -#### Push a file to the device - -```rust no_run -use adb_client::server::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"); -``` - -### Interact directly with end devices - -#### (USB) Launch a command on device - -```rust no_run -use adb_client::{usb::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()); -``` - -#### (USB) Push a file to the device - -```rust no_run -use adb_client::{usb::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"); -``` - -#### (TCP) Get a shell from device - -```rust no_run -use std::net::{SocketAddr, IpAddr, Ipv4Addr}; -use adb_client::{tcp::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())); -``` diff --git a/adb_client/src/message_devices/tcp/README.md b/adb_client/src/message_devices/tcp/README.md new file mode 100644 index 0000000..cc24b1f --- /dev/null +++ b/adb_client/src/message_devices/tcp/README.md @@ -0,0 +1,13 @@ +# Examples + +## Get a shell from device + +```rust no_run +use std::net::{SocketAddr, IpAddr, Ipv4Addr}; +use adb_client::{tcp::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())); +``` diff --git a/adb_client/src/message_devices/tcp/mod.rs b/adb_client/src/message_devices/tcp/mod.rs index cd9a81d..17b1267 100644 --- a/adb_client/src/message_devices/tcp/mod.rs +++ b/adb_client/src/message_devices/tcp/mod.rs @@ -1,3 +1,5 @@ +#![doc = include_str!("./README.md")] + mod adb_tcp_device; mod tcp_transport; diff --git a/adb_client/src/message_devices/usb/README.md b/adb_client/src/message_devices/usb/README.md new file mode 100644 index 0000000..bc9bfd9 --- /dev/null +++ b/adb_client/src/message_devices/usb/README.md @@ -0,0 +1,26 @@ +# Examples + +## Launch a command on device + +```rust no_run +use adb_client::{usb::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()); +``` + +## Push a file to the device + +```rust no_run +use adb_client::{usb::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/file.txt")).expect("Cannot open file"); +device.push(&mut input, &"/data/local/tmp"); +``` diff --git a/adb_client/src/message_devices/usb/mod.rs b/adb_client/src/message_devices/usb/mod.rs index 29d3490..6463a93 100644 --- a/adb_client/src/message_devices/usb/mod.rs +++ b/adb_client/src/message_devices/usb/mod.rs @@ -1,3 +1,5 @@ +#![doc = include_str!("./README.md")] + mod adb_rsa_key; mod adb_usb_device; mod usb_transport; diff --git a/adb_client/src/server/README.md b/adb_client/src/server/README.md new file mode 100644 index 0000000..845da97 --- /dev/null +++ b/adb_client/src/server/README.md @@ -0,0 +1,15 @@ +# Examples + +## Get available ADB devices + +```rust no_run +use adb_client::server::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(); +``` diff --git a/adb_client/src/server/mod.rs b/adb_client/src/server/mod.rs index 30d7341..a47dfe2 100644 --- a/adb_client/src/server/mod.rs +++ b/adb_client/src/server/mod.rs @@ -1,3 +1,5 @@ +#![doc = include_str!("./README.md")] + mod adb_server; mod adb_server_command; mod commands; diff --git a/adb_client/src/server_device/README.md b/adb_client/src/server_device/README.md new file mode 100644 index 0000000..27bf621 --- /dev/null +++ b/adb_client/src/server_device/README.md @@ -0,0 +1,25 @@ +# Examples + +## Launch a command on device + +```rust no_run +use adb_client::{server::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()); +``` + +## Push a file to the device + +```rust no_run +use adb_client::server::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/file.txt")).expect("Cannot open file"); +device.push(&mut input, "/data/local/tmp"); +``` diff --git a/adb_client/src/server_device/mod.rs b/adb_client/src/server_device/mod.rs index c783001..286c69d 100644 --- a/adb_client/src/server_device/mod.rs +++ b/adb_client/src/server_device/mod.rs @@ -1,3 +1,5 @@ +#![doc = include_str!("./README.md")] + mod adb_server_device; mod adb_server_device_commands; mod commands;