spacearth-dtn

Crates.iospacearth-dtn
lib.rsspacearth-dtn
version0.1.2
created_at2025-06-18 12:29:36.586174+00
updated_at2025-06-19 14:30:05.792661+00
descriptionA Rust-based implementation of Delay Tolerant Networking (DTN) for resilient communication
homepage
repositoryhttps://github.com/Ray-Gee/spacearth-dtn
max_upload_size
id1717017
size148,587
ray-gee (Ray-Gee)

documentation

README

spacearth-dtn

License

spacearth-dtn is a Rust-based implementation of Delay Tolerant Networking (DTN),
designed for resilient communication between space and earth — and beyond.

This project aims to offer modular, efficient, and extensible components for BPv7-based DTN systems,
suitable for both space and terrestrial disruption-tolerant networks.

"From space to earth. For the disconnected."

Contact

For questions, suggestions, or contributions, please contact:


Features

  • 🌍 BPv7-compliant Bundle Protocol
  • 🛰️ Store-and-forward mechanism
  • 🔌 Modular CLA (Convergence Layer Adapter) design
  • 📦 Bundle persistence and metadata management
  • 🛠️ Extensible for LoRa, BLE, disaster scenarios, and more

Quick Start

CLI Tool

A command-line tool for creating and managing Bundle Protocol bundles is available:

# Install the project
cargo install --path .

# Create a bundle
sdtn insert --message "Hello, DTN!"

# List all bundles
sdtn list

# Show bundle details (using partial ID)
sdtn show --id <partial_id>

# Start daemon listener (receiver)
sdtn daemon listener --addr 127.0.0.1:3000

# Start daemon dialer (sender)
sdtn daemon dialer --addr 127.0.0.1:3000

Configuration is managed in config/default.toml and can be overridden with environment variables:

# Specify config file
export DTN_CONFIG="config/development.toml"

# Override individual settings
export DTN_BUNDLE_VERSION=8
export DTN_ENDPOINTS_DESTINATION="dtn://new-dest"

Testing the Setup

You can verify basic DTN communication with the following steps:

1. Start the listener (receiver)

# Run in terminal 1
sdtn daemon listener --addr 127.0.0.1:3000

2. Create a bundle and send it via dialer (sender)

# Run in terminal 2
sdtn insert --message "Hello, DTN!"
sdtn daemon dialer --addr 127.0.0.1:3000

This procedure allows you to verify that the created bundle is transmitted via TCP and received by the listener.


Development Roadmap

Current development phase and future plans:

  1. Bundle Structure & CBOR Support (Completed)

    • Bundle structure definition
    • CBOR serialization/deserialization
    • Basic CLI operations
  2. Bundle Storage/Load (Completed)

    • File-based persistence
    • BundleStore implementation
    • Partial ID lookup support
    • Automatic test cleanup
    • Bundle dispatch functionality
  3. CLA (Convergence Layer Adapter) (Completed)

    • TCP communication
    • Basic daemon listener/dialer functionality
  4. 🔜 Bundle Transmission & Reception (Next)

    • Bundle sending via CLA
    • Bundle receiving and processing
    • Integration with BundleStore
  5. 🚧 Forwarding Control

    • Relay node routing
    • Routing rules implementation
  6. 🚧 Software Bus

    • Inter-process communication
    • Message queue
  7. 🚧 Event Loop / Task Management

    • Async processing
    • Task scheduling
  8. Management CLI / WebUI (Optional)

    • Advanced management features
    • Visualization tools
  9. RFC Compliance (Optional)

    • RFC 9171 compliance tests
    • Interoperability tests

License

MIT OR Apache-2.0


AI-Generated Content

Some parts of this project (README, code comments, and sample logic) are co-authored or generated using AI tools.
All code is manually reviewed and tested before use.

Commit count: 56

cargo fmt