-
Notifications
You must be signed in to change notification settings - Fork 6.3k
Developing with an IDE
This page provides a few details for helping if you choose to develop RocksDB via an IDE (Integrated Development Environment). It should be treated as advice.
-
RocksDB ships with two build systems
Make
andCMake
, some environments will work best with one or the other. TheMake
build system is more fully developed than that of theCMake
build system, however theCMake
system does offer the advantage that it can generate configuration files for working with several different IDEs. -
RocksJava has two aspects, the C++ JNI code which links with RocksDB's C++ code, and its Java code. The RocksJava C++ JNI code can be developed with the same IDE that you use for working with RocksDB's C++ code. The Java code of RocksJava can be worked with via any IDE that support Apache Maven. A template
pom.xml
for RocksJava is provided injava/target/pom.xml.template
, apom.xml
can be generated from this and used as an IDE project file by simply runningmake rocksdbjavageneratepom
.
You can generate an XCode project for RocksDB using CMake:
cd rocksdb
mkdir build
cd build
cmake -G Xcode ..
You can then open the build/
folder as an existing project in XCode.
NOTE: These instructions are for the full Studio product and NOT for Visual Studio Code
.
You can generate a Visual Studio project for RocksDB using CMake:
cd rocksdb
mkdir build
cd build
cmake -G "Visual Studio 14 Win64" ..
However, for more details on available project options and targets for Visual Studio, see Building on Windows.
Contents
- RocksDB Wiki
- Overview
- RocksDB FAQ
- Terminology
- Requirements
- Contributors' Guide
- Release Methodology
- RocksDB Users and Use Cases
- RocksDB Public Communication and Information Channels
-
Basic Operations
- Iterator
- Prefix seek
- SeekForPrev
- Tailing Iterator
- Compaction Filter
- Multi Column Family Iterator (Experimental)
- Read-Modify-Write (Merge) Operator
- Column Families
- Creating and Ingesting SST files
- Single Delete
- Low Priority Write
- Time to Live (TTL) Support
- Transactions
- Snapshot
- DeleteRange
- Atomic flush
- Read-only and Secondary instances
- Approximate Size
- User-defined Timestamp
- Wide Columns
- BlobDB
- Online Verification
- Options
- MemTable
- Journal
- Cache
- Write Buffer Manager
- Compaction
- SST File Formats
- IO
- Compression
- Full File Checksum and Checksum Handoff
- Background Error Handling
- Huge Page TLB Support
- Tiered Storage (Experimental)
- Logging and Monitoring
- Known Issues
- Troubleshooting Guide
- Tests
- Tools / Utilities
-
Implementation Details
- Delete Stale Files
- Partitioned Index/Filters
- WritePrepared-Transactions
- WriteUnprepared-Transactions
- How we keep track of live SST files
- How we index SST
- Merge Operator Implementation
- RocksDB Repairer
- Write Batch With Index
- Two Phase Commit
- Iterator's Implementation
- Simulation Cache
- [To Be Deprecated] Persistent Read Cache
- DeleteRange Implementation
- unordered_write
- Extending RocksDB
- RocksJava
- Lua
- Performance
- Projects Being Developed
- Misc