Cargo Features

[dependencies]
internet2 = { version = "0.9.0", default-features = false, features = ["all", "serde", "derive", "keygen", "tor"] }

Features
========

default = derive, tor, zmq

Listings
--------
By default we use LNP with Tor support and URL support

all = derive, keygen, serde, tor, zmq
serde all? = serde_crate, serde_with

Exposing core rust componens
----------------------------
These also include re-assembly of necessary features from dependencies

Enables serde-std of bitcoin_hashes ^0.11.0 and serde of amplify ^3.13.0

Dependencies on other LNP/BP repositories
-----------------------------------------

and serde of inet2_addr and secp256k1 ^0.24.2

secp256k1:

Dependencies on core rust-bitcoin & cryptography
------------------------------------------------

derive default all? = inet2_derive
keygen all?

Enables keygen of inet2_addr, rand-std of secp256k1 ^0.24.2

tor default all?

Networking
----------

Enables tor of inet2_addr

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features.

Dependencies
============

inet2_derive derive
serde_crate serde?

Enables serde

Core rust projects

This strange naming is a workaround for cargo inability to define required features for a dependency. See https://github.com/rust-lang/api-guidelines/issues/180 for the explanation and references.

serde_with serde?

Enables serde_with ^1.14

zmq default all?

Enables zmq2

Networking deps
---------------
These dependencies are used to provide support for networking URLs in

Affects session::LocalSession, session::RpcSession, transport::zeromq