Run:
git clone https://github.com/singularity-data/risingwave-dev.git
- OS: macOS, Linux
- Java 11
- Rust
- CMake
- Protocol Buffers
- OpenSSL
- PostgreSQL (psql) (>= 14.1)
To install components in macOS, run:
brew install java11
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
brew install cmake
brew install protobuf
brew install openssl
Note that we only tested our code against Java 11. So please use the specific version!
You should have already seen multiple folders in our repo:
- The
java
folder contains the system's frontend code. The frontend includes parser, binder, planner, optimizer, and other components. We use Calcite to serve as our query optimizer. - The
rust
folder contains the system's backend code. The backend includes the streaming engine, OLAP engine, storage engine and meta service. - The
e2e_test
folder contains the latest end-to-end test cases.
RiseDev is the new tool for developing RisingWave. You'll need to install tmux (>= 3.2a) beforehand.
brew install tmux
Then, in the root directory, simply run:
./risedev d # shortcut for ./risedev dev
psql -h localhost -p 4567 -d dev
Everything will be set for you.
There are a lot of other running configurations, like ci-1node
, ci-3node
, dev-compute-node
. You may find more in ./risedev --help
.
To stop the playground,
./risedev k # shortcut for ./risedev kill
And you can configure components for RiseDev.
./risedev configure
For developers who only develop Rust code (e.g., frontend-v2), use the following command to start an all-in-one process:
./risedev p
For more information, refer to README.md
under rust/risedevtool
.
To preview the web page, install Node.js, and
cd rust/meta/src/dashboard && npx reload -b
Thanks for your interest in contributing to the project, please refer to the CONTRIBUTING.md.
Currently, we are using nightly toolchain nightly-2022-03-09
. If anyone needs to upgrade
the toolchain, be sure to bump rust-toolchain
file as well as GitHub workflow.
The Rust codebase is documented with docstring, and you could view the documentation by:
make rust_doc
cd rust/target/doc
open risingwave/index.html