bidi

This crate implements the [Unicode Bidirectional Algorithm][tr9] for display of

Crystal port of Rust unicode-bidi crate
Unicode Bidirectional Algorithm implementation for mixed RTL/LTR text display

Architecture · Development · Guidelines · Testing · PR Workflow


Acts as a translator ensuring right-to-left and left-to-right scripts coexist harmoniously on screen, implementing the Unicode Bidirectional Algorithm to properly display mixed-direction text.


Quick Start

# Clone the repository
git clone https://github.com/dsisnero/bidi.git
cd bidi

# Initialize submodules
git submodule update --init

# Install dependencies
make install

# Run tests
make test

Features

  • Unicode Bidirectional Algorithm: Full implementation of UBA as defined in Unicode Technical Report #9
  • Rust parity: Behavior-identical port of the Rust unicode-bidi crate
  • Crystal-native API: Clean Crystal interface with proper type mappings
  • Comprehensive testing: Ported upstream tests plus Crystal-specific validation
  • Inventory tracking: Systematic parity tracking with manifest files

Development

make install    # Install dependencies
make update     # Update dependencies
make format     # Format code
make lint       # Lint code (format check + ameba)
make test       # Run tests
make clean      # Clean build artifacts

See Development Guide for full setup instructions.

Documentation

Document Purpose
Architecture System design and data flow
Development Setup and daily workflow
Coding Guidelines Code style and conventions
Testing Test commands and patterns
PR Workflow Commits, PRs, and review process

Contributing

  1. Create an issue: /forge-create-issue
  2. Implement: /forge-implement-issue <number>
  3. Self-review: /forge-reflect-pr
  4. Address feedback: /forge-address-pr-feedback
  5. Update changelog: /forge-update-changelog

Upstream

License

MIT - See LICENSE file for details.

Repository

bidi

Owner
Statistic
  • 0
  • 0
  • 0
  • 0
  • 1
  • about 9 hours ago
  • March 31, 2026
License

MIT License

Links
Synced at

Tue, 31 Mar 2026 04:13:46 GMT

Languages