1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//! libfw-client: reusable client-side transfer logic and browser glue.
//!
//! The crate is intentionally split into a reusable Rust library core and a
//! thin `wasm` bridge. This allows the client logic to be consumed by Rust
//! code directly, while the JS/browser-facing API remains in the dedicated
//! WASM module.
//!
//! # Two client forms, one protocol
//!
//! * **Native Rust** ([`native::NativeClient`], any non-`wasm32` target):
//! an async `tokio` + `reqwest` transport implementing the same wire
//! protocol — resumable `Range` downloads, the session upload protocol,
//! zrip compression and the same adaptive tuning engine. Enable it by
//! depending on this crate from a normal Rust binary/library.
//! * **Browser/WASM** ([`LibfwClient`], `wasm32` only): the engine behind the
//! `sdk/` npm package, which additionally supports the File System Access
//! API and IndexedDB resume state.
pub use ;
pub use LibfwError;
pub use FileEntry;
pub use ;
// Re-exported so consumers can name the capability/limit types returned by
// `native::NativeClient::{capabilities, fetch_capabilities}` without having to
// depend on `libfw-core` directly.
pub use ;
/// Native (non-WASM) Rust client: async `reqwest` transport speaking the same
/// wire protocol as the browser engine.
pub use ;