libindigo-rs

libindigo Documentation

Welcome to the libindigo documentation. This directory contains comprehensive documentation for the libindigo Rust library for INDIGO protocol clients.

Documentation Structure

User Guides

Essential guides for using libindigo:

Architecture

Technical architecture and design documents:

Protocols

INDIGO protocol documentation:

Development

Development guides and processes:

Project Management

Getting Started

For Users

  1. Read the README for project overview
  2. Check BUILD.md for build instructions
  3. Review examples/ for usage examples
  4. See Client Strategies to choose implementation

For Contributors

  1. Read Ways of Working for GitHub workflow
  2. Review Roo Workflow Scheme for AI-assisted development
  3. Check GitHub Issues Guide for creating issues
  4. Follow GitHub Setup Instructions for repository setup

For Maintainers

  1. Review CHANGES.md for release planning
  2. Check plans/ for active planning documents
  3. Use GitHub Issues Guide to create tracking issues
  4. Follow Roo Workflow Scheme for coordinating work

Architecture Overview

libindigo implements a dual-strategy pattern for INDIGO client connectivity:

Pure Rust Strategy (Default)

Use when: You want zero FFI dependencies, modern async Rust, or web integration.

FFI Strategy

Use when: You need hardware driver support or proven C implementation.

See Client Strategies for details.

Protocol Support

XML Protocol (Version 2.0)

JSON Protocol (Version 512)

See JSON Protocol for details.

Key Features

Implemented (v0.1.2)

Planned (v0.2.0)

Planned (v0.3.0)

See CHANGES.md for complete roadmap.

Testing

Unit Tests

# Core crate (strategy-agnostic)
cargo test -p libindigo --lib

# Pure Rust client
cargo test -p libindigo-rs --lib

# FFI client
cargo test -p libindigo-ffi --lib

Integration Tests

# Pure Rust client (requires INDIGO server)
cargo test -p libindigo-rs --test '*'

# FFI client (requires INDIGO server)
cargo test -p libindigo-ffi --test '*'

See Testing Guide for details.

Examples

The examples/ directory contains working examples:

Run examples:

cargo run --example discover_servers --features rs,auto

API Documentation

Generate API documentation:

cargo doc --no-deps --features rs --open

Support

Contributing

We welcome contributions! Please:

  1. Read Ways of Working
  2. Follow Roo Workflow Scheme
  3. Use appropriate issue templates
  4. Write tests for new features
  5. Update documentation

License

This project is licensed under the MIT License. See LICENSE.md for details.

References

External Documentation

Internal Documentation


Last Updated: 2026-03-05 Version: 0.2.0