Awesome Open Source
Awesome Open Source

Fast Reference Counter (FRC)

(C) 2017, 2018 Terrain Data, Inc.


FRC is a high-performance reference counting library for C++. It provides smart pointer types with performance that greatly exceeds that of std::shared_ptr and boost::atomic_shared_ptr, for example; in particular, FRC's reference-counted pointer types excel in concurrent scenarios (such as concurrent data structures). A research paper describing FRC in detail is linked at the bottom of this file.


The repository consists of three main components:

  • The FRC library
  • Unit tests for the FRC library and supporting components
  • Benchmarks for the FRC library

Source code for the tests is located under the test folder, and source code for the benchmarks is located under the benchmark folder. Source code for the FRC library is located under the src directory.

All build files (including binary output, CMake build scripts, Makefiles, etc.) are located under the build directory. Each of the components of the repository has its own subdirectory and associated CMakeLists.txt under the build directory.

The root-level cmake directory contains CMake helper routines, including the common compiler flags used for compiling the projects.

The root-level lib directory contains scripts (and, when the FRC library is built, the corresponding headers/libraries) for downloading and building dependent libraries, such as Boost and Google Test (the latter being used for managing tests and benchmarks).


FRC automatically downloads and builds certain dependencies like Boost. However, certain other dependencies may need to be installed. For example, in order to run, you should first install the following dependencies (written here as a one-line command for Debian-like operating systems):

sudo apt-get install astyle


We welcome contributions to the FRC project. Any new commits should be sure to adhere to our code style; please run ./ each time you are about to make a commit in order to automatically enforce our code style.


Please see the included

Using in a Research Project

For details on FRC, download our research paper for free here. If you use FRC in a research project, please cite our paper (citation below), and please let us know about your paper!

Charles Tripp, David Hyde, and Benjamin Grossman-Ponemon. 2018. FRC: A High-Performance Concurrent Parallel Deferred Reference Counter for C++. In Proceedings of the 2018 ACM SIGPLAN International Symposium on Memory Management (ISMM '18). ACM, New York, NY, USA, 14-28.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
c-plus-plus (18,981
cpp (1,374
memory (119
parallel-computing (90
memory-management (36