Not the OP, but active user and contributor to folly, so I can add some context.<p>folly is a community effort within Meta; it doesn't have a specific theme about what's included in it, but it is a set of core libraries that are likely to be depended on by most C++ software within the company, and are enough high-quality and self-contained that they can be useful externally, or showcase implementations undergoing standardization efforts (for example experimental/coro for coroutines).<p>Main focus is server applications, but it is also used in mobile, in particular Thrift (the serialization/RPC infrastructure) depends on it.<p>A very personal list of favorites:<p>- experimental/coro is the coroutines infrastructure, which is now widely adopted.<p>- SharedMutex is a heavily optimized mutex which supports shared/upgrade/exclusive semantics, and allows near-linear scalability in shared mode. It is used pretty much everywhere as it is the default mutex for Synchronized, a wrapper to safely synchronize access to objects. Its footprint is just 4 bytes.<p>- DistributedMutex, OTOH, is an exclusive-only mutex that supports flat combining, and performs extremely well under high contention.<p>- MPMCQueue and UnboundedQueue are lock-free MPMC queues, respectively bounded and unbounded, which are used in almost all our thread pools (see the executor/ directory)<p>- Userland implementations of RCU and hazard pointers, for deferred reclamation.<p>- LifoSem and Baton are other fundamental synchronization primitives that are not available in most core C++ libraries. They do a magic trick internally, where if they're waiting long enough, they unmap the unused suffix of the stack, so idle threads don't hold unused stack memory.<p>- Function is like std::function, but move-only, so it can hold non-copyable function objects (think lambda that captures unique_ptr). It is the vocabulary type for callbacks used in futures and executors.<p>- F14 is a SIMD-optimized hash table. Similar to Abseil's SwissTable, it was published around the same time.<p>- TDigest is a highly scalable quantile estimator, widely used for service counters (see fb303, also open source).<p>- (shameless plug, as I wrote this one) enumerate() is a replica of the Python function, so you can do<p>for (auto&& [i, element] : folly::enumerate(collection)) { ... }