Skip to content

Commit

Permalink
Update DEVELOPMENT.md
Browse files Browse the repository at this point in the history
  • Loading branch information
jopemachine committed Oct 14, 2024
1 parent 55bd392 commit fd4ea02
Showing 1 changed file with 33 additions and 4 deletions.
37 changes: 33 additions & 4 deletions DEVELOPMENT.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# Building from Source

You can use this command to clone the repository:
You can build the Raftify source code on macOS, Windows, and Linux.

Use this command to clone the repository,

```
❯ git clone --recursive https://github.com/lablup/raftify.git
Expand All @@ -12,14 +14,41 @@ If you already cloned it and forgot to initialize the submodules, execute the fo
❯ git submodule update --init
```

# Development environment setup
# Development Environment Setup

## Test

You can run the test codes of Raftify in parallel using [nextest](https://github.com/nextest-rs/nextest).

To install `nextest`,

## precommit hook setup
```
❯ cargo install cargo-nextest
```

And run the tests by the following command.

```
❯ cargo nextest run
```

## `precommit` hook setup

You can use pre-commit hooks with the following configuration.
This commit hook performs checks like cargo fmt and cargo clippy before committing.
This commit hook performs checks like `cargo fmt` and `cargo clippy` before committing.

```
❯ pip install pre-commit --break-system-packages
❯ pre-commit install
```

# Features

You can build Raftify with the following features.

By enabling or disabling the features below, you can include only the essential dependencies and source code in the build.

- `inmemory_storage`: In-memory log storage.
- `heed_storage`: [Heed](`https://github.com/meilisearch/heed`) log storage.
- `rocksdb_storage`: [RocksDB](https://github.com/rust-rocksdb/rust-rocksdb) log storage.
- `tls`: Enable TLS encryption for Raft server and client.

0 comments on commit fd4ea02

Please sign in to comment.