bacnet-rs

Crates.iobacnet-rs
lib.rsbacnet-rs
version0.2.1
created_at2025-06-19 12:29:42.717756+00
updated_at2025-07-11 10:16:10.000033+00
descriptionA complete BACnet protocol stack implementation in Rust
homepagehttps://github.com/Heliopshan/bacnet-rs
repositoryhttps://github.com/Heliopshan/bacnet-rs
max_upload_size
id1718301
size1,129,871
Tom van Hest (Heliopshan)

documentation

https://docs.rs/bacnet-rs

README

BACnet-RS

A comprehensive BACnet (Building Automation and Control Networks) protocol stack implementation in Rust.

Overview

This library provides a complete implementation of the BACnet protocol stack in Rust, designed as a modern alternative to the official C BACnet stack. It supports multiple data link layers, all standard BACnet services, and is suitable for both embedded and desktop applications.

Features

  • Complete BACnet Implementation: All standard objects, services, and data types
  • Multiple Data Links: BACnet/IP, MS/TP, Ethernet support
  • No-std Compatible: Can run on embedded systems without standard library
  • Async Support: Optional async/await support for network operations
  • Type Safe: Leverages Rust's type system to prevent protocol errors
  • High Performance: Zero-copy design with minimal allocations

Quick Start

Add this to your Cargo.toml:

[dependencies]
bacnet-rs = "0.2"

Architecture

The stack is organized into layered modules:

  • Encoding: BACnet data encoding/decoding
  • Datalink: Network transport implementations
  • Network: NPDU handling and routing
  • Service: BACnet service implementations
  • Object: Standard BACnet object types
  • Application: High-level API

License

Licensed under either of

at your option.

Commit count: 5

cargo fmt