personal-rns 0.3.4

Personal Reticulum: the pure engine, the high-level runtime, and every interface family behind one crate and one prelude
pub use crate::{
    request_endpoints, CommandId, DestinationHash, Diagnostic, InterfaceStatus, ManuallyAttached,
    Message, NoPersistence, PacketReceiptDelivered, PreConfiguredDestination, PrnsCommand,
    PrnsEvent, PrnsNodeApi, PrnsNodeRecipe, ProofStrategy, RatchetPolicy, ResourceStrategy,
    RuntimeHealth, SendError, Zeroizing, IDENTITY_SECRET_KEY_LEN,
};

pub use crate::engine::{
    AnnounceAppData, AnnounceNow, AnnounceTarget, PersistenceFlushCause, PersistenceFlushTarget,
};
pub use crate::interfaces::{BitrateBps, InterfaceKind};
pub use crate::manifold::reconnect::ReconnectPolicy;
pub use crate::routing::LinkRequestPolicy;
pub use crate::runtime::request_endpoints::{
    Decline, RequestContext, RequestEndpoint, RequestEndpointId, RequestEndpointPolicy,
    RespondToken,
};
pub use crate::runtime::ServeMyRequestEndpoints;
pub use crate::storage::{DisplayedStorageLimits, StorageCapacity, StorageLayout};

#[cfg(feature = "alloc")]
pub use crate::GrowableHeap;

#[cfg(feature = "external-alloc")]
pub use crate::Esp32S3;

#[cfg(feature = "tokio-host")]
pub use crate::{
    fill_os_entropy, try_generate_identity_secret, AttachIntent, Attachable, AttachedInterface,
    AttachedSupervisor, Fleet, PrnsNode, PrnsNodeHandle,
};

#[cfg(feature = "tokio-host")]
pub use crate::node_introspection::NodeIntrospection;
#[cfg(feature = "tokio-host")]
pub use crate::runtime::{
    NodePersistence, PersistenceEvent, PersistenceFlushStatus, SaveOnLearn, SaveOnLearnWiring,
};

#[cfg(all(feature = "embassy-host", not(feature = "tokio-host")))]
pub use crate::{Fleet, PrnsNode, PrnsNodeHandle};

#[cfg(all(feature = "embassy-host", feature = "tokio-host"))]
pub use crate::{EmbassyPrnsNode, EmbassyPrnsNodeHandle};

#[cfg(all(feature = "ax25", feature = "tokio-host"))]
pub use crate::ax25_kiss::Ax25KissInterface;
#[cfg(all(feature = "backbone", feature = "tokio-host"))]
pub use crate::backbone::{BackboneClientInterface, BackboneServer};
#[cfg(all(
    feature = "bluetooth-auto",
    feature = "embassy-host",
    not(feature = "tokio-host")
))]
pub use crate::bluetooth_auto::BluetoothAuto;
#[cfg(all(feature = "bluetooth-auto", feature = "tokio-host"))]
pub use crate::bluetooth_auto::{
    AttachedBle, AttachedBluetoothLe, AutoBle, AutoBluetoothLe, BluetoothAuto,
};
#[cfg(all(feature = "browser-rendezvous", feature = "tokio-host"))]
pub use crate::browser_rendezvous::BrowserRendezvous;
#[cfg(all(feature = "esp-now", feature = "embassy-host"))]
pub use crate::esp_now::EspNowInterface;
#[cfg(all(feature = "i2p", feature = "tokio-host"))]
pub use crate::i2p::I2pInterface;
#[cfg(all(feature = "kiss", feature = "tokio-host"))]
pub use crate::kiss::KissInterface;
#[cfg(all(feature = "lora", feature = "embassy-host"))]
pub use crate::lora::{
    LoRaConfigError, LoRaInterface, LoRaInterfaceInput, LoRaSpectrumSnapshot, LoRaSpectrumStatus,
    LORA_TX_QUEUE_BYTES,
};
#[cfg(all(feature = "pipe", feature = "tokio-host"))]
pub use crate::pipe::PipeInterface;
#[cfg(all(feature = "rnode", feature = "tokio-host"))]
pub use crate::rnode::RNodeInterface;
#[cfg(all(feature = "serial", feature = "tokio-host"))]
pub use crate::serial::SerialInterface;
#[cfg(all(feature = "shared-instance", feature = "tokio-host"))]
pub use crate::shared_instance::SharedInstanceServer;
#[cfg(all(feature = "tcp", feature = "embassy-host", not(feature = "tokio-host")))]
pub use crate::tcp::{TcpClient, TcpClientInput, TcpSocketBuffers};
#[cfg(all(feature = "tcp", feature = "tokio-host"))]
pub use crate::tcp::{TcpClientInterface, TcpServer};
#[cfg(all(feature = "udp", feature = "tokio-host"))]
pub use crate::udp::UdpInterface;
#[cfg(all(feature = "usb", feature = "tokio-host"))]
pub use crate::usb_auto::{AutoUsb, UsbAutoHost};
#[cfg(all(feature = "usb", feature = "embassy-host"))]
pub use crate::usb_auto::{UsbAutoDevice, UsbAutoDeviceInput};
#[cfg(all(feature = "weave", feature = "tokio-host"))]
pub use crate::weave::WeaveInterface;
#[cfg(all(feature = "websocket", feature = "tokio-host"))]
pub use crate::websocket::{WebSocketClientInterface, WebSocketServer};
#[cfg(all(
    feature = "wifi-auto",
    any(feature = "tokio-host", feature = "embassy-host")
))]
pub use crate::wifi_auto::AutoWifi;
#[cfg(all(
    feature = "wifi-auto",
    feature = "embassy-host",
    not(feature = "tokio-host")
))]
pub use crate::wifi_auto::{AutoWifiSegment, AutoWifiTopology};
#[cfg(all(feature = "wifi-aware", feature = "tokio-host"))]
pub use crate::wifi_aware::WifiAwareAuto;
#[cfg(all(feature = "wifi-direct", feature = "tokio-host"))]
pub use crate::wifi_direct::WifiDirectAuto;
#[cfg(all(
    feature = "tokio-host",
    any(feature = "wifi-auto", feature = "usb", feature = "bluetooth-auto")
))]
pub use crate::DefaultAutoInterfaces;
#[cfg(all(feature = "config", feature = "tokio-host"))]
pub use crate::FromPlan;