CacheLib
Pluggable in-process caching engine to build and scale high performance services
File Explorer
Download Latest Version (.zip)- bug_report.md
- feature_request.md
- general-question.md
- find-stable-candidate.sh
- promote-stable.sh
- README.md
- clang-format-check.yml
- deploy-website.yml
- getdeps_linux.yml
- release.yml
- TagIt.yml
- PULL_REQSUEST_TEMPLATE.md
- fbthrift-rev.txt
- folly-rev.txt
- mvfst-rev.txt
- wangle-rev.txt
- fizz-rev.txt
- fb_py_test_main.py
- fb_py_win_main.c
- FBBuildOptions.cmake
- FBCMakeParseArgs.cmake
- FBCompilerSettings.cmake
- FBCompilerSettingsMSVC.cmake
- FBCompilerSettingsUnix.cmake
- FBPythonBinary.cmake
- FBPythonTestAddTests.cmake
- FBThriftCppLibrary.cmake
- FBThriftLibrary.cmake
- FBThriftPyLibrary.cmake
- FBThriftPythonLibrary.cmake
- FindCares.cmake
- FindDoubleConversion.cmake
- FindGflags.cmake
- FindGlog.cmake
- FindGMock.cmake
- Findibverbs.cmake
- FindLibEvent.cmake
- FindLibiberty.cmake
- FindLibUnwind.cmake
- FindLMDB.cmake
- FindPCRE.cmake
- FindPCRE2.cmake
- FindRe2.cmake
- FindSodium.cmake
- FindXxhash.cmake
- FindZstd.cmake
- make_fbpy_archive.py
- RustStaticLibrary.cmake
- workflow.yml.j2
- foo
- foo
- getdeps_shared-libs_linux.yml
- getdeps_linux.yml
- getdeps_linux.yml
- getdeps_linux.yml
- getdeps_mac.yml
- getdeps_windows.yml
- builder_test.py
- expr_test.py
- features_test.py
- manifest_test.py
- platform_test.py
- retry_test.py
- safe_extract_test.py
- scratch_test.py
- shared_lib_test.py
- strip_marker_test.py
- workflow_generator_test.py
- __init__.py
- builder.py
- buildopts.py
- cache.py
- cargo.py
- cli.py
- cmd_base.py
- copytree.py
- dyndeps.py
- envfuncs.py
- errors.py
- expr.py
- fetcher.py
- getdeps_platform.py
- include_rewriter.py
- load.py
- manifest.py
- py_wheel_builder.py
- runcmd.py
- shared_lib.py
- subcmd.py
- workflow_generator.py
- autoconf
- automake
- benchmark
- bgp
- blake3
- boost
- boost-python
- bz2
- c-ares
- cabal
- cachelib
- clang
- clang19
- CLI11
- cmake
- cpptoml
- eden
- edencommon
- exprtk
- fast_float
- fatal
- fb303
- fboss
- fbthrift
- fbthrift-python
- fizz
- fizz-python
- fmt
- fmt-python
- folly
- folly-python
- gcc12
- gcc14
- gflags
- ghc
- git-lfs
- glean
- glog
- googletest
- gperf
- hexdump
- highs-optimizer
- hsthrift
- iproute2
- jom
- jq
- katran
- libaio
- libaio-python
- libbpf
- libcurl
- libdwarf
- libdwarf-python
- libelf
- libevent
- libevent-python
- libffi
- libgit2
- libgpiod
- libiberty
- libiberty-python
- libibverbs
- libmnl
- libnl
- liboqs
- libsai
- libsodium
- libtool
- libunwind
- libusb
- libyaml
- llvm
- lmdb
- lz4
- lz4-python
- magic_enum
- mcrouter
- mononoke
- mononoke_integration
- moxygen
- mvfst
- mvfst-python
- ncurses
- nghttp2
- ninja
- nlohmann-json
- nmap
- numa
- openr
- openssl
- osxfuse
- patchelf
- pcre2
- perl
- pexpect
- proxygen
- python
- python-3_14
- python-click
- python-filelock
- python-main
- python-psutil
- python-ptyprocess
- python-pyyaml
- python-setuptools
- python-setuptools-69
- python-six
- python-toml
- ragel
- range-v3
- rdma-core
- re2
- rebalancer
- rebalancer-explorer
- ripgrep
- rocksdb
- rust-shed
- sapling
- snappy
- sparsemap
- sqlite3
- systemd
- tabulate
- tree
- wangle
- wangle-python
- watchman
- xxhash
- xz
- yaml-cpp
- zlib
- zlib-python
- zstd
- zstd-python
- boost_1_83_0.patch
- c-ares-mintimeout.patch
- glog_default_visibility.patch
- iproute2_oss.patch
- libiberty_install_pic_lib.patch
- zlib_dont_build_more_than_needed.patch
- .gitignore
- getdeps.py
- LICENSE
- README.md
- CachelibWrapperTest.cpp
- CachelibWrapper.cpp
- CachelibWrapper.h
- objects.thrift
- DListTest.cpp
- MultiDListTest.cpp
- SListTest.cpp
- test_objects.thrift
- AsanSList.h
- DList.h
- MultiDList.h
- SList.h
- objects.thrift
- AllocationClassTest.cpp
- CompressedPtrTest.cpp
- MemoryAllocatorTest.cpp
- MemoryPoolManagerTest.cpp
- MemoryPoolTest.cpp
- SlabAllocatorTest.cpp
- TestBase.cpp
- TestBase.h
- AllocationClass.cpp
- AllocationClass.h
- CompressedPtr.h
- MemoryAllocator.cpp
- MemoryAllocator.h
- MemoryAllocatorStats.h
- MemoryPool.cpp
- MemoryPool.h
- MemoryPoolManager.cpp
- MemoryPoolManager.h
- Slab.h
- SlabAllocator.cpp
- SlabAllocator.h
- AccessTimeMapTest.cpp
- InFlightPutsTest.cpp
- NavyConfigTest.cpp
- NavySetupTest.cpp
- NvmCacheTests.cpp
- NvmItemTests.cpp
- NvmTestBase.cpp
- NvmTestBase.h
- TombStoneTests.cpp
- AccessTimeMap.h
- BlockCacheReinsertionPolicy.h
- CacheApiWrapper.h
- InFlightPuts.h
- NavyConfig.cpp
- NavyConfig.h
- NavySetup.cpp
- NavySetup.h
- NvmCache.h
- NvmItem.cpp
- NvmItem.h
- ReqContexts.h
- TombStones.h
- WaitContext.h
- objects.thrift
- AccessTypeTest.h
- AllocatorHitStatsTest.h
- AllocatorHitStatsTypeTest.cpp
- AllocatorMemoryTiersTest.cpp
- AllocatorMemoryTiersTest.h
- AllocatorResizeTest.h
- AllocatorResizeTypeTest.cpp
- AllocatorTestUtils.h
- AllocatorTypeTest.cpp
- AllocatorTypeTestDeathStyle.cpp
- BaseAllocatorTest.h
- BaseAllocatorTestDeathStyle.h
- Cache.h
- CacheAllocatorConfigTest.cpp
- CacheAllocatorTestWrapper.h
- CacheBaseTest.cpp
- ChainedHashTest.cpp
- ItemHandleTest.cpp
- ItemTest.cpp
- MarginalHitsStateTest.cpp
- MemoryMonitorTest.cpp
- MemoryTiersTest.cpp
- MM2QTest.cpp
- MMLruTest.cpp
- MMTinyLFUTest.cpp
- MMTypeTest.h
- MMWTinyLFUTest.cpp
- MultiAllocatorTest.cpp
- MultiAllocatorTest.h
- NvmAdmissionPolicyTest.cpp
- NvmCacheStateTest.cpp
- NvmTestUtils.h
- PoolOptimizeStrategyTest.cpp
- RebalanceStrategyTest.cpp
- RefCountTest.cpp
- SimplePoolOptimizationTest.cpp
- SimplePoolOptimizationTest.h
- SimpleRebalancingTest.cpp
- SimpleRebalancingTest.h
- TestBase.h
- BackgroundMover.h
- BackgroundMoverStrategy.h
- Cache.cpp
- Cache.h
- CacheAllocator.h
- CacheAllocatorConfig.h
- CacheAllocatorLru2QCache.cpp
- CacheAllocatorLru5B2QCache.cpp
- CacheAllocatorLru5BCache.cpp
- CacheAllocatorLru5BCacheWithSpinBuckets.cpp
- CacheAllocatorLruCache.cpp
- CacheAllocatorLruCacheWithSpinBuckets.cpp
- CacheAllocatorTinyLFU5BCache.cpp
- CacheAllocatorTinyLFUCache.cpp
- CacheAllocatorWTinyLFU5BCache.cpp
- CacheAllocatorWTinyLFUCache.cpp
- CacheChainedItemIterator.h
- CacheDetails.cpp
- CacheDetails.h
- CacheItem.h
- CacheStats.cpp
- CacheStats.h
- CacheStatsInternal.h
- CacheTraits.h
- CacheVersion.h
- CCacheAllocator.cpp
- CCacheAllocator.h
- CCacheManager.cpp
- CCacheManager.h
- ChainedAllocs.h
- ChainedHashTable.h
- CMakeLists.txt
- ContainerTypes.cpp
- FreeMemStrategy.cpp
- FreeMemStrategy.h
- FreeThresholdStrategy.cpp
- FreeThresholdStrategy.h
- Handle.h
- HitsPerSlabStrategy.cpp
- HitsPerSlabStrategy.h
- ICompactCache.h
- KAllocation.h
- LruTailAgeStrategy.cpp
- LruTailAgeStrategy.h
- ManualStrategy.h
- MarginalHitsOptimizeStrategy.cpp
- MarginalHitsOptimizeStrategy.h
- MarginalHitsState.h
- MarginalHitsStrategy.cpp
- MarginalHitsStrategy.h
- MemoryMonitor.cpp
- MemoryMonitor.h
- MemoryTierCacheConfig.h
- MM2Q.h
- MMLru.h
- MMTinyLFU.h
- MMWTinyLFU.h
- NvmAdmissionPolicy.h
- NvmCacheState.cpp
- NvmCacheState.h
- PoolOptimizer.cpp
- PoolOptimizer.h
- PoolOptimizeStrategy.cpp
- PoolOptimizeStrategy.h
- PoolRebalancer.cpp
- PoolRebalancer.h
- PoolResizer.cpp
- PoolResizer.h
- PoolResizeStrategy.h
- PromotionStrategy.h
- RandomStrategy.h
- ReadOnlySharedCacheView.h
- Reaper.h
- RebalanceInfo.h
- RebalanceStrategy.cpp
- RebalanceStrategy.h
- Refcount.h
- SlabReleaseStats.cpp
- SlabReleaseStats.h
- TempShmMapping.cpp
- TempShmMapping.h
- TlsActiveItemRing.h
- TypedHandle.h
- Util.h
- main.cpp
- BenchmarkUtils.h
- BucketMutexBench.cpp
- BytesEqualBenchmark.cpp
- CacheAllocatorOpsMicroBench.cpp
- CachelibContentionBenchmark.cpp
- CachelibTickerClockBench.cpp
- CMakeLists.txt
- CompactCacheBench.cpp
- CountMinSketchBenchmark.cpp
- DataTypeBench.thrift
- EventTrackerPerf.cpp
- HashMapBenchmark.cpp
- ItemsReaperBench.cpp
- MMTypeAccessBench.cpp
- MMTypeBench.cpp
- MMTypeBench.h
- MutexBench.cpp
- PtrCompressionBench.cpp
- SListBench.cpp
- SmallOperationMicroBench.cpp
- SpeedUpExistenceCheckBenchmark.cpp
- StrictAliasingSafeReadBench.cpp
- ThreadLocalBench.cpp
- Components.cpp
- Components.h
- FlashComponent.cpp
- RAMComponent.cpp
- CacheStatsTest.cpp
- TimeStampTickerTest.cpp
- Cache.cpp
- Cache.h
- CacheStats.h
- CacheValue.h
- ItemRecords.h
- StatsBase.h
- TimeStampTicker.cpp
- TimeStampTicker.h
- RingBufferTest.cpp
- ShortThreadIdTest.cpp
- ValueHistoryTest.cpp
- ValueTrackerTest.cpp
- LogEventStream.cpp
- LogEventStream.h
- RingBuffer.h
- ShortThreadId.cpp
- ShortThreadId.h
- ValueHistory.cpp
- ValueHistory.h
- ValueTracker.cpp
- ValueTracker.h
- DramIteratorStressorTest.cpp
- ObjectCacheStressorTest.cpp
- AsyncCacheStressor.h
- CacheComponentStressor.cpp
- CacheComponentStressor.h
- CacheStressor.h
- CacheStressorBase.cpp
- CacheStressorBase.h
- FastShutdown.cpp
- FastShutdown.h
- IntegrationStressor.cpp
- IntegrationStressor.h
- ObjectCacheStressor.h
- ProgressTracker.cpp
- ProgressTracker.h
- Runner.cpp
- Runner.h
- Stressor.cpp
- Stressor.h
- chained-items-stress-moving.json
- chained-items-stress-no-moving.json
- navy-with-deletes-inmem-buf.json
- navy-with-deletes-stack-alloc-inmem-buf.json
- navy-with-deletes-with-truncated-alloc-size.json
- navy-with-deletes.json
- navy-with-encryption-inmem-buf.json
- navy-with-encryption.json
- navy-with-reinsertion-inmem-buf.json
- navy-with-reinsertion-multiple-clean-threads.json
- navy-with-reinsertion.json
- navy.json
- ram-with-deletes.json
- ram.json
- dram.json
- navy.json
- navy_bighash.json
- arenas.json
- async_io.json
- bc_fifo.json
- bh.json
- default.json
- chained_items.json
- chained_items_moving.json
- default.json
- moving.json
- could_exist.json
- dram_cache.json
- dynamic_refresh_time.json
- event_tracker_dram_navy.json
- free_list.json
- config.json
- pop.json
- sizes.json
- config.json
- pop.json
- sizes.json
- config.json
- pop.json
- sizes.json
- config.json
- pop.json
- sizes.json
- config.json
- pop.json
- sizes.json
- config.json
- pop.json
- sizes.json
- hugepage_none.json
- hugepage_posix.json
- hugepage_sysv.json
- hugepage_tmp.json
- cachelib_map.json
- cachelib_map_asan.json
- cachelib_range_map.json
- cachelib_range_map_asan.json
- fast_shutdown.json
- high_refcount.json
- navy_async.json
- navy_async_sync_comp.json
- object_cache.json
- config.json
- config.json
- pop.json
- sizes.json
- assoc_pop.json
- assoc_sizes.json
- config.json
- fbobj_pop.json
- fbobj_sizes.json
- graph_cache_1inst_1000M.json
- graph_cache_2inst_1000M.json
- graph_cache_3inst_1000M.json
- graph_cache_4inst_1000M.json
- graph_cache_5inst_1000M.json
- config.json
- pop.json
- sizes.json
- config.json
- kvcache_l2_wc_1inst_100M.json
- kvcache_l2_wc_2inst_100M.json
- kvcache_l2_wc_3inst_100M.json
- kvcache_l2_wc_4inst_100M.json
- kvcache_l2_wc_5inst_100M.json
- pop.json
- sizes.json
- hybrid_cache_get_throughput_all_misses.json
- hybrid_cache_only_block_cache_get_throughput_all_misses.json
- ram_cache_get_throughput_all_misses.json
- navy_small_size_class.json
- navy_small_stacked_alloc.json
- navy_small_stacked_alloc_and_in_mem_buffer.json
- navy_small_stacked_alloc_and_in_mem_buffer_throttled.json
- same_value_get_throughput_high_contention.json
- same_value_get_throughput_high_contention_try_lock.json
- same_value_get_throughput_test_20_pools.json
- same_value_get_throughput_test_single_pool.json
- simple_lone_get_throughput.json
- simple_navy_delete_throughput.json
- simple_online_throughput.json
- simple_ram_cache_delete_throughput.json
- simple_set_throughput.json
- simple_set_throughput_with_chained_items.json
- simple_trace_throughput.json
- small_cache_chained_items.json
- uniform_values_get_throughput_test.json
- uniform_values_get_throughput_test_flash_component.json
- uniform_values_get_throughput_test_ram_component.json
- uniform_values_get_throughput_test_single_pool.json
- block_traces_1.csv
- block_traces_2.csv
- config_block.json
- config_kvtrace.json
- config_kvtrace_gen_binary.json
- config_kvtrace_replay_binary.json
- kv_traces_1.csv
- kv_traces_2.csv
- simple_multi_instance_test.json
- simple_test.json
- simple_test_with_persistence.json
- simple_tiers_test.json
- ConfigTest.cpp
- NandWritesTest.cpp
- RequestTest.cpp
- SleepTest.cpp
- AggregateStats.cpp
- AggregateStats.h
- CacheConfig.cpp
- CacheConfig.h
- Config.cpp
- Config.h
- Exceptions.h
- JSONConfig.h
- NandWrites.cpp
- NandWrites.h
- Parallel.h
- Request.h
- Sleep.cpp
- Sleep.h
- extract_latency.sh
- gnuplot_latency.plt
- KVReplayGeneratorTest.cpp
- PieceWiseCacheTest.cpp
- WorkloadGeneratorTest.cpp
- BinaryKVReplayGenerator.h
- BlockChunkCache.cpp
- BlockChunkCache.h
- BlockChunkReplayGenerator.cpp
- BlockChunkReplayGenerator.h
- FastDiscrete.h
- GeneratorBase.h
- KVReplayGenerator.h
- OnlineGenerator.cpp
- OnlineGenerator.h
- PieceWiseCache.cpp
- PieceWiseCache.h
- PieceWiseReplayGenerator.cpp
- PieceWiseReplayGenerator.h
- ReplayGeneratorBase.h
- SimpleFlashBenchmarkGenerator.cpp
- SimpleFlashBenchmarkGenerator.h
- WorkloadDistribution.h
- WorkloadGenerator.cpp
- WorkloadGenerator.h
- binary_trace_gen.cpp
- CMakeLists.txt
- main.cpp
- cachelib-config.cmake.in
- fb_cxx_flags.cmake
- FindGlog.cmake
- FindGMock.cmake
- FindNUMA.cmake
- FindSodium.cmake
- FindSparsemap.cmake
- Finduring.cmake
- FindZlib.cmake
- FindZstd.cmake
- Makefile.tests.in
- HotHashDetector.cpp
- HotHashDetector.h
- HotHashDetectorTest.cpp
- GenericPieces.cpp
- GenericPieces.h
- GenericPiecesBase.cpp
- GenericPiecesBase.h
- GenericPiecesTest.cpp
- RequestRange.cpp
- RequestRange.h
- RequestRangeTest.cpp
- AccessTrackerTest.cpp
- ApproxSplitSetTest.cpp
- BloomFilterTest.cpp
- BytesEqualTest.cpp
- CohortTests.cpp
- CountDownLatchTest.cpp
- CounterTests.cpp
- CountMinSketchTest.cpp
- EventInterfaceTest.cpp
- EventInterfaceTest.h
- EventTrackerTest.cpp
- HashTests.cpp
- IteratorsTests.cpp
- LatencyTrackerTest.cpp
- MutexTests.cpp
- PeriodicWorkerTest.cpp
- SerializationTest.cpp
- TestMain.cpp
- UtilTests.cpp
- UtilTestsRSS.cpp
- AccessTracker.h
- ApproxSplitSet.h
- AtomicCounter.h
- BloomFilter.cpp
- BloomFilter.h
- BloomFilter.thrift
- BytesEqual.h
- CMakeLists.txt
- Cohort.cpp
- Cohort.h
- CompilerUtils.h
- ConditionVariable.h
- CountDownLatch.cpp
- CountDownLatch.h
- CountMinSketch.h
- EventInterface.h
- EventSink.h
- EventTracker.cpp
- EventTracker.h
- Exceptions.h
- FastStats.h
- FurcHash.cpp
- Hash.h
- inject_pause.cpp
- inject_pause.h
- Iterators.h
- MurmurHash.h
- Mutex.h
- PercentileStats.cpp
- PercentileStats.h
- PeriodicWorker.cpp
- PeriodicWorker.h
- Profiled.h
- Serialization.cpp
- Serialization.h
- TestUtils.cpp
- TestUtils.h
- Throttler.h
- Ticker.h
- Time.h
- Utils.cpp
- Utils.h
- CCacheAllocatorBase.h
- TestAllocator.h
- CCacheTests.cpp
- CCacheTests.h
- CCache.h
- CCacheCreator.h
- CCacheDescriptor.h
- CCacheFixedLruBucket.h
- CCacheVariableLruBucket.h
- CMakeLists.txt
- BufferTest.cpp
- DataTypeTest.cpp
- DataTypeTest.h
- FixedSizeArrayTest.cpp
- MapTest.cpp
- MapViewTest.cpp
- RangeMapTest.cpp
- Buffer.cpp
- Buffer.h
- CMakeLists.txt
- DataTypes.h
- FixedSizeArray.h
- Map.h
- MapView.h
- RangeMap.h
- AllocatorTest.cpp
- Common.h
- ObjectCacheTest.cpp
- ThriftCustomAllocator.cpp
- ThriftCustomAllocator.thrift
- Allocator.h
- ObjectCache.h
- ObjectCachePersistence.thrift
- Persistence.h
- README.md
- CacheComponentFactory.cpp
- CacheComponentFactory.h
- CacheComponentTest.cpp
- FlashCacheComponentTest.cpp
- RAMCacheComponentTest.cpp
- FlashCacheComponent.cpp
- FlashCacheComponent.h
- RAMCacheComponent.cpp
- RAMCacheComponent.h
- InterfaceTest.cpp
- ResultTest.cpp
- Utils.h
- CoroFiberAdapterTest.cpp
- ShardedSerializerTest.cpp
- CoroFiberAdapter.cpp
- CoroFiberAdapter.h
- Persistence.h
- ShardedSerializer.h
- CacheComponent.h
- CacheItem.cpp
- CacheItem.h
- CMakeLists.txt
- Handle.cpp
- Handle.h
- Result.h
- Stats.cpp
- Stats.h
- DynamicRandomAPTest.cpp
- RejectRandomAPTest.cpp
- AdmissionPolicy.h
- DynamicRandomAP.cpp
- DynamicRandomAP.h
- RejectRandomAP.cpp
- RejectRandomAP.h
- BigHashTest.cpp
- BucketStorageTest.cpp
- BucketTest.cpp
- BigHash.cpp
- BigHash.h
- Bucket.cpp
- Bucket.h
- BucketStorage.cpp
- BucketStorage.h
- AllocatorTest.cpp
- BlockCacheTest.cpp
- CombinedEntryBlockTest.cpp
- CombinedEntryManagerTest.cpp
- FifoPolicyTest.cpp
- FixedSizeIndexTest.cpp
- HitsReinsertionPolicyTest.cpp
- LruPolicyTest.cpp
- RegionManagerTest.cpp
- RegionTest.cpp
- ReuseTimeReinsertionPolicyTest.cpp
- SparseMapIndexTest.cpp
- TestHelpers.h
- Allocator.cpp
- Allocator.h
- BlockCache.cpp
- BlockCache.h
- CombinedEntryBlock.cpp
- CombinedEntryBlock.h
- CombinedEntryManager.cpp
- CombinedEntryManager.h
- EvictionPolicy.h
- FifoPolicy.cpp
- FifoPolicy.h
- FixedSizeIndex.cpp
- FixedSizeIndex.h
- HitsReinsertionPolicy.cpp
- HitsReinsertionPolicy.h
- Index.h
- LruPolicy.cpp
- LruPolicy.h
- PercentageReinsertionPolicy.h
- Region.cpp
- Region.h
- RegionManager.cpp
- RegionManager.h
- ReuseTimeReinsertionPolicy.cpp
- ReuseTimeReinsertionPolicy.h
- SparseMapIndex.cpp
- SparseMapIndex.h
- Types.h
- BufferTest.cpp
- DeviceTest.cpp
- HashTest.cpp
- UtilsTest.cpp
- Buffer.cpp
- Buffer.h
- CompilerUtils.h
- Device.cpp
- Device.h
- FdpNvme.cpp
- FdpNvme.h
- Hash.cpp
- Hash.h
- NavyThread.cpp
- NavyThread.h
- SizeDistribution.cpp
- SizeDistribution.h
- Types.cpp
- Types.h
- Utils.h
- DriverTest.cpp
- Driver.cpp
- Driver.h
- Engine.h
- EnginePair.cpp
- EnginePair.h
- NoopEngine.h
- OrderedThreadPoolJobSchedulerTest.cpp
- ThreadPoolJobSchedulerTest.cpp
- JobScheduler.h
- NavyRequestDispatcher.cpp
- NavyRequestDispatcher.h
- NavyRequestScheduler.cpp
- NavyRequestScheduler.h
- ThreadPoolJobQueue.cpp
- ThreadPoolJobQueue.h
- ThreadPoolJobScheduler.cpp
- ThreadPoolJobScheduler.h
- RecordIOTest.cpp
- SerializationTest.cpp
- objects.thrift
- RecordIO.cpp
- RecordIO.h
- Serialization.h
- BufferGenTest.cpp
- MockJobSchedulerTest.cpp
- SeqPointsTest.cpp
- BufferGen.cpp
- BufferGen.h
- Callbacks.h
- MockDevice.cpp
- MockDevice.h
- MockJobScheduler.cpp
- MockJobScheduler.h
- SeqPoints.cpp
- SeqPoints.h
- AbstractCache.h
- CMakeLists.txt
- Factory.cpp
- Factory.h
- Persistence.h
- persistent_data.thrift
- Serialization.h
- ObjectCacheTest.cpp
- test_object.thrift
- ThreadMemoryTrackerTest.cpp
- ThreadMemoryTracker.h
- ObjectCache.h
- ObjectCacheBase.h
- ObjectCacheConfig.h
- ObjectCacheSizeController.h
- ObjectCacheSizeDistTracker.h
- PersistenceCache.h
- PersistenceManagerMock.h
- PersistenceManagerMockTest.cpp
- PersistenceManagerTest.cpp
- objects.thrift
- PersistenceManager.cpp
- PersistenceManager.h
- abomonation_cache.rs
- bincode_cache.rs
- cachelib.cpp
- cachelib.h
- errors.rs
- lib.rs
- lrucache.rs
- build.rs
- Cargo.toml
- common.cpp
- common.h
- test_huge_page_helpers.cpp
- test_page_size.cpp
- test_posix.cpp
- test_shm.cpp
- test_shm_death_style.cpp
- test_shm_manager.cpp
- test_sysv.cpp
- CMakeLists.txt
- HugePageTestUtils.h
- PosixShmSegment.cpp
- PosixShmSegment.h
- Shm.h
- shm.thrift
- ShmCommon.cpp
- ShmCommon.h
- ShmManager.cpp
- ShmManager.h
- SysVShmSegment.cpp
- SysVShmSegment.h
- .clang-format
- CMakeLists.txt
- build-cachelib.sh
- build-package.sh
- build.sh
- prepare-rpath-dist.sh
- prerequisites-arch.sh
- prerequisites-centos8.sh
- prerequisites-centos9.sh
- prerequisites-debian10.sh
- prerequisites-fedora32.sh
- prerequisites-fedora34.sh
- prerequisites-rocky9.sh
- prerequisites-ubuntu18.sh
- update-submodules.sh
- FindNUMA.cmake
- FindSodium.cmake
- FindXxhash.cmake
- build.sh
- CMakeLists.txt
- main.cpp
- build.sh
- CMakeLists.txt
- build.sh
- CMakeLists.txt
- build.sh
- CMakeLists.txt
- atm-comparison.png
- atm-persistence.png
- index.md
- lifecycle.png
- 2026-04-02-welcome-to-cachelib-blog.md
- Cachelib_Common_Components.md
- Compact_cache_design.md
- Compact_Cache_Design_cc_contain_slabs.png
- Compact_Cache_Design_cc_veriable.png
- Compact_Cache_Design_image.png
- How-do-we-pick-slab.png
- How-do-we-release-slab-2.png
- How-do-we-release-slab.png
- Hybrid_Cache.md
- Hybrid_Cache_allocate.png
- Hybrid_Cache_find.png
- Job_Scheduler.png
- Large_Object_Cache.md
- large_object_cache_overview.png
- large_object_cache_structured_caching_lookup.png
- large_object_cache_structured_caching_page_1.png
- large_object_cache_structured_caching_page_2.png
- large_object_cache_structured_caching_page_3.png
- navy_arch_overview.png
- navy_architecture.png
- navy_async_io.png
- Navy_Engine_driver_state_machine.png
- navy_engine_pair.png
- navy_impl_overview.png
- Navy_Overview.md
- Overview_A_random_walk_down_the_Cache_Library.md
- RAM_cache_design.md
- RAM_cache_indexing_and_eviction.md
- slab-rebalancing-overview.png
- Slab-rebalancing-why-2.png
- Slab-rebalancing-why-3.png
- Slab-rebalancing-why.png
- Slab_Rebalancing_-_How_Does_It_Work.md
- Small_Item_engine_Read.png
- Small_Item_engine_Write.png
- Small_Object_Cache.md
- SOC_cost_of_operations.png
- Synchronization_In_Eviction_And_Slab_Rebalacing.md
- synchronization_in_eviction_and_slab_rebalancing_chained_item_1.png
- synchronization_in_eviction_and_slab_rebalancing_chained_item_2.png
- synchronization_in_eviction_and_slab_rebalancing_regular_item.png
- About_CacheLib.md
- advise.png
- alternate_fdp_navy.png
- automatic_pool_resizing.md
- Cache_persistence.md
- cachebench.png
- Cachebench_FB_HW_eval.md
- Cachebench_Overview.md
- cachelib_2Q.png
- CacheLib_configs.md
- cachelib_LRU.png
- cachelib_overview.png
- chained_items.md
- compact_cache.md
- Configure_HashTable.md
- Configure_HybridCache.md
- Configuring_cachebench_parameters.md
- Cross_Host_Cache_Persistence.md
- Developing_for_Cachebench.md
- doc5.md
- eviction_policy.md
- faq.md
- FDP_enabled_Cache.md
- hashtable.png
- HybridCache.md
- Item_and_Handle.md
- Item_Destructor.md
- item_state.png
- oom_protection.md
- Partition_cache_into_pools.md
- pool_rebalance_strategy.md
- Read_data_from_cache.md
- Remove_callback.md
- Remove_data_from_cache.md
- remove_data_from_cache_items.png
- Set_up_a_simple_cache.md
- Structured_Cache.md
- terms.md
- ttl_reaper.md
- Tuning_DRAM_cache_efficiency.md
- Visit_data_in_cache.md
- Write_data_to_cache.md
- github-squash-sync.md
- installation.md
- testing.md
- website.md
- cache_library_intro.md
- index.md
- custom.css
- index.js
- learnmore.js
- styles.module.css
- CacheLib-Logo-Large-transp.png
- CacheLib-Logo-Small-transp.png
- CacheLib-Logo-small.png
- CacheLib-Logo.png
- dark_blue_dots.jpg
- favicon.ico
- oss_logo.png
- .nojekyll
- CNAME
- .eslintrc.js
- .gitignore
- .prettierignore
- .prettierrc
- .stylelintrc.js
- .yarnrc
- babel.config.js
- docusaurus.config.js
- package.json
- README.md
- sidebars.js
- yarn.lock
- .clang-format
- .gitignore
- .gitmodules
- BENCHMARKS.md
- BUILD.md
- CacheLib-Logo.png
- CHANGELOG.md
- CODE_OF_CONDUCT.md
- CONTRIBUTING.md
- LICENSE
- README.md
# Installation Guide
1. Get the code
git clone https://github.com/facebook/CacheLib
Downloads the entire project code from GitHub to your computer.
cd CacheLib
Moves into the project folder you just downloaded.
2. CMake
Medium RecommendedPrerequisites
cd cachelib
This project's files live in a subfolder, so move into it first.
mkdir build && cd build
Creates a folder to hold the build output and moves into it.
cmake ..
Analyzes the source code and generates build configuration files (must be run inside the build folder).
make
Compiles the code based on the generated build configuration to produce an executable.
Check that an executable was created inside the build folder, then run it directly (e.g. ./build/app_name).
3. Rust
MediumPrerequisites
- Git Needed to download the project code from GitHub.
- Rust (rustup) Installing via rustup also installs cargo.
โ ๏ธ This is a large repository, so this method may point to an internal sub-package rather than the actual core product. Check the full README as well.
cd cachelib/rust
This project's files live in a subfolder, so move into it first.
cargo build --release
Compiles the Rust project.
cargo run
Builds and then immediately runs the program.
If cargo build finishes without errors, it worked. The executable is created under target/.
// repository documentation
Was this content helpful?
(0 ratings)
