11 releases
| 0.2.0 | Dec 24, 2025 |
|---|---|
| 0.1.8 | Jul 1, 2025 |
| 0.1.6 | Jun 30, 2025 |
| 0.1.4 | May 4, 2025 |
| 0.0.0 | Apr 23, 2025 |
#231 in Rust patterns
766 downloads per month
Used in 48 crates
(7 directly)
38KB
513 lines
Gofer.rs
Gofer.rs makes it easy to fetch data from any URL in Rust.
Just call gofer::open(url) to get back a Read!
✨ Features
- Currently supports
https:,http:,ftp:,file:, anddata:URLs. - Supports opting out of any feature using comprehensive feature flags.
- Adheres to the Rust API Guidelines in its naming conventions.
- 100% free and unencumbered public domain software.
🛠️ Prerequisites
- Rust 1.81+
⬇️ Installation
Installation via Cargo
cargo add gofer
Installation in Cargo.toml (with all features enabled)
[dependencies]
gofer = "0.1"
Installation in Cargo.toml (with only specific features enabled)
[dependencies]
gofer = { version = "0.1", default-features = false, features = ["file"] }
👉 Examples
Importing the Library
use gofer::open;
Reading HTTP(S) URLs
let result = gofer::open("https://www.google.com/robots.txt");
Reading FTP URLs
let result = gofer::open("ftp://ftp.isc.org/welcome.msg");
Reading file: URLs
let result = gofer::open("file:///path/to/file.txt");
Reading stdin: URLs
let result = gofer::open("stdin:");
Reading data: URLs
let result = gofer::open("data:,Hello%2C%20world%21%0A");
📚 Reference
Protocols
| Scheme | Feature | Summary |
|---|---|---|
data: |
data |
Inline data in Base64 or URL-encoded format |
file: |
file |
Local file path |
ftp: |
ftp |
FTP |
http: |
http |
HTTP |
https: |
https |
HTTPS |
stdin: |
stdin |
Standard input stream |
Integrations
| Crate (Feature) | Version | Usage | Summary |
|---|---|---|---|
clap ("clap") |
4.5 | Implements clap::builder::TypedValueParser (TBD) |
|
miette ("miette") |
7.5 | Derives miette::Diagnostic on gofer::Error |
|
👨💻 Development
git clone https://github.com/dryrust/gofer.rs.git
Dependencies
~0.9–16MB
~184K SLoC