# FriBidi

> open source C implementation of the Unicode Bidirectional Algorithm

**Wikidata**: [Q11201268](https://www.wikidata.org/wiki/Q11201268)  
**Source**: https://4ort.xyz/entity/fribidi

## Summary
FriBidi is an open-source C implementation of the Unicode Bidirectional Algorithm, developed by Khaled Hosny and distributed under the GNU Lesser General Public License. It ensures proper text rendering for languages with mixed left-to-right and right-to-left scripts, such as Arabic and Hebrew, by handling bidirectional text processing.

## Key Facts
- Open-source C implementation of the Unicode Bidirectional Algorithm
- Developed by Khaled Hosny and Dov Grobgeld
- Distributed under the GNU Lesser General Public License, version 2.1 or later
- Latest stable version: 1.0.16 (released on 2024-09-25)
- Official website: [https://fribidi.org/](https://fribidi.org/)
- Source code repository: [https://github.com/fribidi/fribidi](https://github.com/fribidi/fribidi)
- Available as packages for Fedora, Gentoo, Arch Linux, FreeBSD, OpenBSD, macOS (Homebrew), and Android
- Supports multiple programming languages, including C, C++, and Java
- First release: 0.19.1 (2018-02-14)
- Notable releases: 1.0.0 (2018-02-03), 1.0.16 (2024-09-25)
- Used in various software projects for bidirectional text processing
- Maintained on GitHub under the fribidi organization

## FAQs
- **What is the Unicode Bidirectional Algorithm, and why is FriBidi important?**
  The Unicode Bidirectional Algorithm is a standard for handling text that mixes left-to-right and right-to-left scripts. FriBidi ensures correct rendering of such text in applications, making it essential for multilingual software.

- **Who developed FriBidi, and what is its licensing model?**
  FriBidi was developed by Khaled Hosny and Dov Grobgeld. It is distributed under the GNU Lesser General Public License, version 2.1 or later, allowing free use, modification, and distribution.

- **How is FriBidi used in software development?**
  FriBidi is integrated into various software projects to handle bidirectional text processing, ensuring proper display of languages like Arabic and Hebrew. It is available as a library for C, C++, and Java.

- **What platforms and operating systems support FriBidi?**
  FriBidi is available as packages for Fedora, Gentoo, Arch Linux, FreeBSD, OpenBSD, macOS (via Homebrew), and Android. It is also distributed via SourceForge and GitHub.

- **How often is FriBidi updated, and where can I find the latest version?**
  FriBidi is regularly updated, with the latest stable version being 1.0.16 (released on 2024-09-25). The source code and releases are available on GitHub at [https://github.com/fribidi/fribidi](https://github.com/fribidi/fribidi).

## Why It Matters
FriBidi plays a critical role in ensuring accurate text rendering for languages with bidirectional scripts, such as Arabic and Hebrew. By implementing the Unicode Bidirectional Algorithm, it enables software to display mixed-directional text correctly, enhancing user experience in multilingual applications. Its open-source nature and compatibility with multiple platforms make it a valuable tool for developers worldwide. FriBidi’s adherence to free software principles ensures that it remains accessible and modifiable, supporting a wide range of use cases in text processing and internationalization.

## Notable For
- First open-source C implementation of the Unicode Bidirectional Algorithm
- Available as packages for major Linux distributions and mobile platforms
- Supports multiple programming languages, including C, C++, and Java
- Maintained on GitHub with regular updates and community contributions
- Used in various software projects for bidirectional text processing
- Distributed under a permissive open-source license

## Body
### Overview
FriBidi is an open-source C library that implements the Unicode Bidirectional Algorithm, ensuring correct rendering of text that mixes left-to-right and right-to-left scripts. Developed by Khaled Hosny and Dov Grobgeld, it is distributed under the GNU Lesser General Public License, version 2.1 or later, allowing free use, modification, and distribution.

### Development and Releases
FriBidi was first released as version 0.19.1 on 2018-02-14. Subsequent releases include 1.0.0 (2018-02-03) and 1.0.16 (2024-09-25), the latest stable version. The project is maintained on GitHub under the fribidi organization, with releases documented on the official repository.

### Technical Specifications
FriBidi is written in C and supports integration with C, C++, and Java applications. It is available as packages for Fedora, Gentoo, Arch Linux, FreeBSD, OpenBSD, macOS (via Homebrew), and Android. The library is also distributed via SourceForge and GitHub.

### Usage and Impact
FriBidi is used in various software projects to handle bidirectional text processing, ensuring proper display of languages like Arabic and Hebrew. Its open-source nature and compatibility with multiple platforms make it a valuable tool for developers worldwide.

### Community and Support
FriBidi is maintained by a community of developers, with contributions and updates regularly posted on GitHub. The project is supported by various platforms, including Open Hub, Repology, and the Free Software Directory.

### Related Projects and Implementations
FriBidi is part of the GNU project and is available as a package in multiple Linux distributions. It is also listed on platforms like Open Hub and Repology, indicating its widespread use and integration into software ecosystems.

## References

1. [The fribidi Open Source Project on Open Hub: Languages Page. Open Hub](https://www.openhub.net/p/fribidi/analyses/latest/languages_summary)
2. [Release 1.0.4. 2018](https://github.com/fribidi/fribidi/releases/tag/v1.0.4)
3. [Release 1.0.3. 2018](https://github.com/fribidi/fribidi/releases/tag/v1.0.3)
4. [Release 1.0.2. 2018](https://github.com/fribidi/fribidi/releases/tag/v1.0.2)
5. [Release 1.0.1. 2018](https://github.com/fribidi/fribidi/releases/tag/v1.0.1)
6. [Release 1.0.0. 2018](https://github.com/fribidi/fribidi/releases/tag/v1.0.0)
7. [Release 0.19.7. 2018](https://github.com/fribidi/fribidi/releases/tag/0.19.7)
8. [Release 0.19.6. 2018](https://github.com/fribidi/fribidi/releases/tag/0.19.6)
9. [Release 0.19.5. 2018](https://github.com/fribidi/fribidi/releases/tag/0.19.5)
10. [Release 0.19.4. 2018](https://github.com/fribidi/fribidi/releases/tag/0.19.4)
11. [Release 0.19.1. 2018](https://github.com/fribidi/fribidi/releases/tag/FRIBIDI_0_19_1)
12. [Release 1.0.5. 2018](https://github.com/fribidi/fribidi/releases/tag/v1.0.5)
13. [Release 1.0.7. 2019](https://github.com/fribidi/fribidi/releases/tag/v1.0.7)
14. [Release 1.0.8. 2019](https://github.com/fribidi/fribidi/releases/tag/v1.0.8)
15. [Release 1.0.9. 2020](https://github.com/fribidi/fribidi/releases/tag/v1.0.9)
16. [Release 1.0.10. 2020](https://github.com/fribidi/fribidi/releases/tag/v1.0.10)
17. [Release FriBidi Version 1.0.11](https://github.com/fribidi/fribidi/releases/tag/v1.0.11)
18. [Release v1.0.12](https://github.com/fribidi/fribidi/releases/tag/v1.0.12)
19. [Release 1.0.13. 2023](https://github.com/fribidi/fribidi/releases/tag/v1.0.13)
20. [Release v1.0.14 · fribidi/fribidi](https://github.com/fribidi/fribidi/releases/tag/v1.0.14)
21. [Release v1.0.15 · fribidi/fribidi](https://github.com/fribidi/fribidi/releases/tag/v1.0.15)
22. [Release v1.0.16 · fribidi/fribidi](https://github.com/fribidi/fribidi/releases/tag/v1.0.16)