summaryrefslogtreecommitdiffstats
path: root/ipfs-api/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ipfs-api/src/lib.rs')
-rw-r--r--ipfs-api/src/lib.rs287
1 files changed, 156 insertions, 131 deletions
diff --git a/ipfs-api/src/lib.rs b/ipfs-api/src/lib.rs
index 64ea2f4..22568d8 100644
--- a/ipfs-api/src/lib.rs
+++ b/ipfs-api/src/lib.rs
@@ -14,145 +14,170 @@
//!
//! ```toml
//! [dependencies]
-//! ipfs-api = "0.5.0-alpha2"
+//! ipfs-api = "0.5.1"
+//! ```
+//!
+//! You can use `actix-web` as a backend instead of `hyper`.
+//!
+//! ```toml
+//! [dependencies]
+//! ipfs-api = { version = "0.5.1", features = ["actix"], default-features = false }
+//! ```
+//!
+//! ## Examples
+//!
+//! ### Writing a file to IPFS
+//!
+//! #### With Hyper
+//!
+//! ```no_run
+//! # extern crate hyper;
+//! # extern crate ipfs_api;
+//! #
+//! use hyper::rt::Future;
+//! use ipfs_api::IpfsClient;
+//! use std::io::Cursor;
+//!
+//! # fn main() {
+//! let client = IpfsClient::default();
+//! let data = Cursor::new("Hello World!");
+//!
+//! let req = client
+//! .add(data)
+//! .map(|res| {
+//! println!("{}", res.hash);
+//! })
+//! .map_err(|e| eprintln!("{}", e));
+//!
+//! hyper::rt::run(req);
+//! # }
+//! ```
+//!
+//! #### With Actix
+//!
+//! ```no_run
+//! # extern crate actix_web;
+//! # extern crate futures;
+//! # extern crate ipfs_api;
+//! #
+//! use futures::future::Future;
+//! use ipfs_api::IpfsClient;
+//! use std::io::Cursor;
+//!
+//! # fn main() {
+//! let client = IpfsClient::default();
+//! let data = Cursor::new("Hello World!");
+//!
+//! let req = client
+//! .add(data)
+//! .map(|res| {
+//! println!("{}", res.hash);
+//! })
+//! .map_err(|e| eprintln!("{}", e));
+//!
+//! actix_web::actix::run(|| {
+//! req.then(|_| {
+//! actix_web::actix::System::current().stop();
+//! Ok(())
+//! })
+//! });
+//! # }
+//! ```
+//!
+//! ### Reading a file from IPFS
+//!
+//! #### With Hyper
+//!
+//! ```no_run
+//! # extern crate futures;
+//! # extern crate hyper;
+//! # extern crate ipfs_api;
+//! #
+//! use futures::{Future, Stream};
+//! use ipfs_api::IpfsClient;
+//! use std::io::{self, Write};
+//!
+//! # fn main() {
+//! let client = IpfsClient::default();
+//!
+//! let req = client
+//! .get("/test/file.json")
+//! .concat2()
+//! .map(|res| {
+//! let out = io::stdout();
+//! let mut out = out.lock();
+//!
+//! out.write_all(&res).unwrap();
+//! })
+//! .map_err(|e| eprintln!("{}", e));
+//!
+//! hyper::rt::run(req);
+//! # }
+//! ```
+//!
+//! #### With Actix
+//!
+//! ```no_run
+//! # extern crate futures;
+//! # extern crate actix_web;
+//! # extern crate ipfs_api;
+//! #
+//! use futures::{Future, Stream};
+//! use ipfs_api::IpfsClient;
+//! use std::io::{self, Write};
+//!
+//! # fn main() {
+//! let client = IpfsClient::default();
+//!
+//! let req = client
+//! .get("/test/file.json")
+//! .concat2()
+//! .map(|res| {
+//! let out = io::stdout();
+//! let mut out = out.lock();
+//!
+//! out.write_all(&res).unwrap();
+//! })
+//! .map_err(|e| eprintln!("{}", e));
+//!
+//! actix_web::actix::run(|| {
+//! req.then(|_| {
+//! actix_web::actix::System::current().stop();
+//! Ok(())
+//! })
+//! });
+//! # }
+//! ```
+//!
+//! ### Additional Examples
+//!
+//! There are also a bunch of examples included in the project, which
+//! I used for testing
+//!
+//! For a list of examples, run:
+//!
+//! ```sh
+//! $ cargo run --example
+//! ```
+//!
+//! You can run any of the examples with cargo:
+//!
+//! ```sh
+//! $ cargo run -p ipfs-api --example add_file
+//! ```
+//!
+//! To run an example with the `actix-web` backend, use:
+//!
+//! ```sh
+//! $ cargo run -p ipfs-api --features actix --no-default-features --example add_file
//! ```
//!
#[cfg(feature = "actix")]
extern crate actix_multipart_rfc7578 as actix_multipart;
-
-/// ## Examples
-///
-/// Write a file to IPFS:
-///
-/// ```no_run
-/// # extern crate actix_web;
-/// # extern crate futures;
-/// # extern crate ipfs_api;
-/// #
-/// use futures::future::Future;
-/// use ipfs_api::IpfsClient;
-/// use std::io::Cursor;
-///
-/// # fn main() {
-/// let client = IpfsClient::default();
-/// let data = Cursor::new("Hello World!");
-///
-/// let req = client
-/// .add(data)
-/// .map(|res| {
-/// println!("{}", res.hash);
-/// })
-/// .map_err(|e| eprintln!("{}", e));
-///
-/// tokio::runtime::current_thread::run(req);
-/// # }
-/// ```
-///
-/// Read a file from IPFS:
-///
-/// ```no_run
-/// # extern crate futures;
-/// # extern crate actix_web;
-/// # extern crate ipfs_api;
-/// #
-/// use futures::{Future, Stream};
-/// use ipfs_api::IpfsClient;
-/// use std::io::{self, Write};
-///
-/// # fn main() {
-/// let client = IpfsClient::default();
-///
-/// let req = client
-/// .get("/test/file.json")
-/// .concat2()
-/// .map(|res| {
-/// let out = io::stdout();
-/// let mut out = out.lock();
-///
-/// out.write_all(&res).unwrap();
-/// })
-/// .map_err(|e| eprintln!("{}", e));
-///
-/// tokio::runtime::current_thread::run(req);
-/// # }
-/// ```
-///
-/// There are also a bunch of examples included in the project, which
-/// I used for testing
-///
-/// You can run any of the examples with cargo:
-///
-/// ```sh
-/// $ cargo run -p ipfs-api --example add_file
-/// ```
#[cfg(feature = "actix")]
extern crate actix_web;
-/// ## Examples
-///
-/// Write a file to IPFS:
-///
-/// ```no_run
-/// # extern crate hyper;
-/// # extern crate ipfs_api;
-/// #
-/// use hyper::rt::Future;
-/// use ipfs_api::IpfsClient;
-/// use std::io::Cursor;
-///
-/// # fn main() {
-/// let client = IpfsClient::default();
-/// let data = Cursor::new("Hello World!");
-///
-/// let req = client
-/// .add(data)
-/// .map(|res| {
-/// println!("{}", res.hash);
-/// })
-/// .map_err(|e| eprintln!("{}", e));
-///
-/// hyper::rt::run(req);
-/// # }
-/// ```
-///
-/// Read a file from IPFS:
-///
-/// ```no_run
-/// # extern crate futures;
-/// # extern crate hyper;
-/// # extern crate ipfs_api;
-/// #
-/// use futures::{Future, Stream};
-/// use ipfs_api::IpfsClient;
-/// use std::io::{self, Write};
-///
-/// # fn main() {
-/// let client = IpfsClient::default();
-///
-/// let req = client
-/// .get("/test/file.json")
-/// .concat2()
-/// .map(|res| {
-/// let out = io::stdout();
-/// let mut out = out.lock();
-///
-/// out.write_all(&res).unwrap();
-/// })
-/// .map_err(|e| eprintln!("{}", e));
-///
-/// hyper::rt::run(req);
-/// # }
-/// ```
-///
-/// There are also a bunch of examples included in the project, which
-/// I used for testing
-///
-/// You can run any of the examples with cargo:
-///
-/// ```sh
-/// $ cargo run -p ipfs-api --example add_file
-/// ```
#[cfg(feature = "hyper")]
extern crate hyper;
#[cfg(feature = "hyper")]