Skip to content


Subversion checkout URL

You can clone with
Download ZIP
An open-source C++ library developed and used at Facebook.
C++ C Python Shell Ruby Makefile
Latest commit 19fb62b @andriigrynenko andriigrynenko committed with facebook-github-bot-0 Deprecate get_weak()
Summary: get_weak() is always used with .lock(), but try_get() is actually more performant than get_weak().lock().
Using get_weak() to store a weak_ptr and keep locking is not safe in fork scenarios.

Reviewed By: yfeldblum

Differential Revision: D2694223

fb-gh-sync-id: 908d44293ffd9b3782152d43e28d5de172d1654a

Folly: Facebook Open-source Library

Folly is an open-source C++ library developed and used at Facebook.

Get Started

Folly is published on Github at; for discussions, there is a Google group at


folly requires gcc 4.8+ and a version of boost compiled with C++11 support.

Please download googletest from and unzip it in the folly/test subdirectory.

Ubuntu 12.04

This release is old, requiring many upgrades. However, since Travis CI runs on 12.04, folly/build/ is provided, and upgrades all the required packages.

Ubuntu 13.10

The following packages are required (feel free to cut and paste the apt-get command below):

sudo apt-get install \
    g++ \
    automake \
    autoconf \
    autoconf-archive \
    libtool \
    libboost-all-dev \
    libevent-dev \
    libdouble-conversion-dev \
    libgoogle-glog-dev \
    libgflags-dev \
    liblz4-dev \
    liblzma-dev \
    libsnappy-dev \
    make \
    zlib1g-dev \
    binutils-dev \
    libjemalloc-dev \

Ubuntu 14.04 LTS

The packages listed above for Ubuntu 13.10 are required, as well as:

sudo apt-get install \

The above packages are sufficient for Ubuntu 13.10 and Ubuntu 14.04.

In the folly directory, run

  autoreconf -ivf
  make check
  sudo make install

OS X (Homebrew)

folly is available as a Formula and releases may be built via brew install folly.

You may also use folly/build/ to build against master:

  cd folly
  make check

OS X (MacPorts)

Install the required packages from MacPorts:

  sudo port install \
    autoconf \
    automake \
    boost \
    gflags \
    git \
    google-glog \
    libevent \
    libtool \
    lz4 \
    lzma \
    scons \
    snappy \

Download and install double-conversion:

  git clone
  cd double-conversion
  sudo make install

Download and install folly with the parameters listed below:

  git clone
  cd folly/folly
  autoreconf -ivf
  ./configure CPPFLAGS="-I/opt/local/include" LDFLAGS="-L/opt/local/lib"
  sudo make install

Other Linux distributions

  • double-conversion (

    Download and build double-conversion. You may need to tell configure where to find it.

    [double-conversion/] ln -s src double-conversion



  • additional platform specific dependencies:

    Fedora 21 64-bit

    • gcc
    • gcc-c++
    • autoconf
    • autoconf-archive
    • automake
    • boost-devel
    • libtool
    • lz4-devel
    • lzma-devel
    • snappy-devel
    • zlib-devel
    • glog-devel
    • gflags-devel
    • scons
    • double-conversion-devel
    • openssl-devel
    • libevent-devel
Something went wrong with that request. Please try again.