diff --git a/misc/multiaddr/Cargo.toml b/misc/multiaddr/Cargo.toml index 85080c22..b3568070 100644 --- a/misc/multiaddr/Cargo.toml +++ b/misc/multiaddr/Cargo.toml @@ -8,6 +8,9 @@ keywords = ["multiaddr", "ipfs"] license = "MIT" version = "0.9.5" +[features] +default = ["url"] + [dependencies] arrayref = "0.3" bs58 = "0.4.0" @@ -18,7 +21,7 @@ percent-encoding = "2.1.0" serde = "1.0.70" static_assertions = "1.1" unsigned-varint = "0.5" -url = { version = "2.1.0", default-features = false } +url = { version = "2.1.0", optional = true, default-features = false } [dev-dependencies] bincode = "1" diff --git a/misc/multiaddr/src/from_url.rs b/misc/multiaddr/src/from_url.rs index aac19c2d..cfafbef8 100644 --- a/misc/multiaddr/src/from_url.rs +++ b/misc/multiaddr/src/from_url.rs @@ -7,6 +7,9 @@ use std::{error, fmt, iter, net::IpAddr}; /// generated multiaddress. This includes a username, password, path (if not supported by the /// multiaddr), and query string. /// +/// This function is only present if the `url` feature is enabled, and it is +/// enabled by default. +/// /// The supported URL schemes are: /// /// - `ws://example.com/` @@ -31,6 +34,9 @@ pub fn from_url(url: &str) -> std::result::Result { /// This function is similar to [`from_url`], except that we don't return an error if some /// information in the URL cannot be retain in the generated multiaddres. /// +/// This function is only present if the `url` feature is enabled, and it is +/// enabled by default. +/// /// # Example /// /// ``` diff --git a/misc/multiaddr/src/lib.rs b/misc/multiaddr/src/lib.rs index 41a77a32..cc63ddf2 100644 --- a/misc/multiaddr/src/lib.rs +++ b/misc/multiaddr/src/lib.rs @@ -5,6 +5,8 @@ pub use multihash; mod protocol; mod onion_addr; mod errors; + +#[cfg(feature = "url")] mod from_url; use serde::{ @@ -25,10 +27,12 @@ use std::{ sync::Arc }; pub use self::errors::{Result, Error}; -pub use self::from_url::{FromUrlErr, from_url, from_url_lossy}; pub use self::protocol::Protocol; pub use self::onion_addr::Onion3Addr; +#[cfg(feature = "url")] +pub use self::from_url::{FromUrlErr, from_url, from_url_lossy}; + static_assertions::const_assert! { // This check is most certainly overkill right now, but done here // anyway to ensure the `as u64` casts in this crate are safe.