A C++20 library from Facebook focused on performance and practicality, complementing std and Boost with components used at scale.
Folly is an open-source C++20 library developed and used extensively at Facebook, designed with practicality and efficiency in mind. It provides performance-optimized components that complement standard libraries like std and Boost, focusing on solving real-world problems at massive scale. The library serves as a shared dependency for Facebook's other open-source C++ projects and contains battle-tested code for production environments.
C++ developers working on performance-critical systems, large-scale applications, or projects requiring production-proven components beyond what std and Boost offer. Particularly valuable for teams building infrastructure software or high-performance services.
Developers choose Folly for its performance-optimized components that have been proven at Facebook's scale, its practical approach that complements rather than replaces existing standards, and its focus on solving real-world efficiency problems that aren't adequately addressed by std or Boost alone.
An open-source C++ library developed and used at Facebook.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Components are optimized for large-scale use, with designs like PackedSyncPtr.h prioritizing efficiency over convention, as tested in Facebook's production.
Battle-tested in Facebook's infrastructure, ensuring robustness for critical systems, as stated in the README's emphasis on real-world usage.
Built with C++20 compliance, leveraging modern features for better safety and performance, keeping it current with language evolution.
Focuses only on gaps where standard libraries fall short, avoiding redundancy and providing practical enhancements, as per the library's philosophy.
Reliance on getdeps.py for dependency management adds setup overhead, and manual CMake configuration requires handling non-default paths, increasing initial effort.
The README explicitly states no ABI stability between commits, forcing static linking and complicating version upgrades in dynamic environments.
Performance optimizations lead to unconventional code, such as in SmallLocks.h, which can hinder readability and maintainability for developers not familiar with Facebook's patterns.