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.
# 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- Unicode Bidirectional Algorithm: Full implementation of UBA as defined in Unicode Technical Report #9
- Rust parity: Behavior-identical port of the Rust
unicode-bidicrate - 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
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 artifactsSee Development Guide for full setup instructions.
| 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 |
- Create an issue:
/forge-create-issue - Implement:
/forge-implement-issue <number> - Self-review:
/forge-reflect-pr - Address feedback:
/forge-address-pr-feedback - Update changelog:
/forge-update-changelog
- Source: https://github.com/servo/unicode-bidi.git
- Version: v0.3.18 (commit 580b9c6)
- Documentation: https://docs.rs/unicode-bidi
MIT - See LICENSE file for details.