├── .editorconfig ├── .github └── workflows │ └── test.yml ├── .gitignore ├── .python-version ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── Makefile ├── README.md ├── benches └── suites │ ├── progress.py │ ├── raft.py │ └── raw_node.py ├── example ├── multi_mem_node │ └── main.py └── single_mem_node │ ├── use_coroutine.py │ └── use_threading.py ├── harness ├── README.md ├── src │ ├── interface.py │ └── network.py ├── tests │ ├── test_failpoints.py │ ├── test_raft.py │ ├── test_raft_flow_control.py │ ├── test_raft_paper.py │ ├── test_raft_snap.py │ └── test_raw_node.py └── utils.py ├── py.typed ├── pyproject.toml ├── pytest.ini ├── requirements.txt ├── rraft.pyi └── src ├── bindings ├── config.rs ├── get_entries_context.rs ├── global.rs ├── inflights.rs ├── joint_config.rs ├── light_ready.rs ├── majority_config.rs ├── mod.rs ├── peer.rs ├── progress.rs ├── progress_state.rs ├── progress_tracker.rs ├── raft_state.rs ├── read_state.rs ├── readonly_option.rs ├── ready.rs ├── snapshot_status.rs ├── soft_state.rs ├── state_role.rs └── unstable.rs ├── external_bindings ├── mod.rs └── slog.rs ├── lib.rs ├── mem_storage_bindings ├── mem_storage.rs ├── mem_storage_core.rs ├── mod.rs ├── raft.rs ├── raft_log.rs └── raw_node.rs ├── py_storage_bindings ├── mod.rs ├── py_storage.rs ├── raft.rs ├── raft_log.rs └── raw_node.rs ├── raftpb_bindings ├── conf_change.rs ├── conf_change_single.rs ├── conf_change_transition.rs ├── conf_change_type.rs ├── conf_change_v2.rs ├── conf_state.rs ├── entry.rs ├── entry_type.rs ├── hard_state.rs ├── message.rs ├── message_type.rs ├── mod.rs ├── snapshot.rs └── snapshot_metadata.rs └── utils ├── deserializer.rs ├── errors.rs ├── mod.rs ├── reference.rs └── unsafe_cast.rs /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/.editorconfig -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/.github/workflows/test.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/.gitignore -------------------------------------------------------------------------------- /.python-version: -------------------------------------------------------------------------------- 1 | 3.11.4 2 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/README.md -------------------------------------------------------------------------------- /benches/suites/progress.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/benches/suites/progress.py -------------------------------------------------------------------------------- /benches/suites/raft.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/benches/suites/raft.py -------------------------------------------------------------------------------- /benches/suites/raw_node.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/multi_mem_node/main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/example/multi_mem_node/main.py -------------------------------------------------------------------------------- /example/single_mem_node/use_coroutine.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/example/single_mem_node/use_coroutine.py -------------------------------------------------------------------------------- /example/single_mem_node/use_threading.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/example/single_mem_node/use_threading.py -------------------------------------------------------------------------------- /harness/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/harness/README.md -------------------------------------------------------------------------------- /harness/src/interface.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/harness/src/interface.py -------------------------------------------------------------------------------- /harness/src/network.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/harness/src/network.py -------------------------------------------------------------------------------- /harness/tests/test_failpoints.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/harness/tests/test_failpoints.py -------------------------------------------------------------------------------- /harness/tests/test_raft.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/harness/tests/test_raft.py -------------------------------------------------------------------------------- /harness/tests/test_raft_flow_control.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/harness/tests/test_raft_flow_control.py -------------------------------------------------------------------------------- /harness/tests/test_raft_paper.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/harness/tests/test_raft_paper.py -------------------------------------------------------------------------------- /harness/tests/test_raft_snap.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/harness/tests/test_raft_snap.py -------------------------------------------------------------------------------- /harness/tests/test_raw_node.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/harness/tests/test_raw_node.py -------------------------------------------------------------------------------- /harness/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/harness/utils.py -------------------------------------------------------------------------------- /py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/pyproject.toml -------------------------------------------------------------------------------- /pytest.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/pytest.ini -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/requirements.txt -------------------------------------------------------------------------------- /rraft.pyi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/rraft.pyi -------------------------------------------------------------------------------- /src/bindings/config.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/bindings/config.rs -------------------------------------------------------------------------------- /src/bindings/get_entries_context.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/bindings/get_entries_context.rs -------------------------------------------------------------------------------- /src/bindings/global.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/bindings/global.rs -------------------------------------------------------------------------------- /src/bindings/inflights.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/bindings/inflights.rs -------------------------------------------------------------------------------- /src/bindings/joint_config.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/bindings/joint_config.rs -------------------------------------------------------------------------------- /src/bindings/light_ready.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/bindings/light_ready.rs -------------------------------------------------------------------------------- /src/bindings/majority_config.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/bindings/majority_config.rs -------------------------------------------------------------------------------- /src/bindings/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/bindings/mod.rs -------------------------------------------------------------------------------- /src/bindings/peer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/bindings/peer.rs -------------------------------------------------------------------------------- /src/bindings/progress.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/bindings/progress.rs -------------------------------------------------------------------------------- /src/bindings/progress_state.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/bindings/progress_state.rs -------------------------------------------------------------------------------- /src/bindings/progress_tracker.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/bindings/progress_tracker.rs -------------------------------------------------------------------------------- /src/bindings/raft_state.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/bindings/raft_state.rs -------------------------------------------------------------------------------- /src/bindings/read_state.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/bindings/read_state.rs -------------------------------------------------------------------------------- /src/bindings/readonly_option.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/bindings/readonly_option.rs -------------------------------------------------------------------------------- /src/bindings/ready.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/bindings/ready.rs -------------------------------------------------------------------------------- /src/bindings/snapshot_status.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/bindings/snapshot_status.rs -------------------------------------------------------------------------------- /src/bindings/soft_state.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/bindings/soft_state.rs -------------------------------------------------------------------------------- /src/bindings/state_role.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/bindings/state_role.rs -------------------------------------------------------------------------------- /src/bindings/unstable.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/bindings/unstable.rs -------------------------------------------------------------------------------- /src/external_bindings/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod slog; 2 | -------------------------------------------------------------------------------- /src/external_bindings/slog.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/external_bindings/slog.rs -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/mem_storage_bindings/mem_storage.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/mem_storage_bindings/mem_storage.rs -------------------------------------------------------------------------------- /src/mem_storage_bindings/mem_storage_core.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/mem_storage_bindings/mem_storage_core.rs -------------------------------------------------------------------------------- /src/mem_storage_bindings/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/mem_storage_bindings/mod.rs -------------------------------------------------------------------------------- /src/mem_storage_bindings/raft.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/mem_storage_bindings/raft.rs -------------------------------------------------------------------------------- /src/mem_storage_bindings/raft_log.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/mem_storage_bindings/raft_log.rs -------------------------------------------------------------------------------- /src/mem_storage_bindings/raw_node.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/mem_storage_bindings/raw_node.rs -------------------------------------------------------------------------------- /src/py_storage_bindings/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/py_storage_bindings/mod.rs -------------------------------------------------------------------------------- /src/py_storage_bindings/py_storage.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/py_storage_bindings/py_storage.rs -------------------------------------------------------------------------------- /src/py_storage_bindings/raft.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/py_storage_bindings/raft.rs -------------------------------------------------------------------------------- /src/py_storage_bindings/raft_log.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/py_storage_bindings/raft_log.rs -------------------------------------------------------------------------------- /src/py_storage_bindings/raw_node.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/py_storage_bindings/raw_node.rs -------------------------------------------------------------------------------- /src/raftpb_bindings/conf_change.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/raftpb_bindings/conf_change.rs -------------------------------------------------------------------------------- /src/raftpb_bindings/conf_change_single.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/raftpb_bindings/conf_change_single.rs -------------------------------------------------------------------------------- /src/raftpb_bindings/conf_change_transition.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/raftpb_bindings/conf_change_transition.rs -------------------------------------------------------------------------------- /src/raftpb_bindings/conf_change_type.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/raftpb_bindings/conf_change_type.rs -------------------------------------------------------------------------------- /src/raftpb_bindings/conf_change_v2.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/raftpb_bindings/conf_change_v2.rs -------------------------------------------------------------------------------- /src/raftpb_bindings/conf_state.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/raftpb_bindings/conf_state.rs -------------------------------------------------------------------------------- /src/raftpb_bindings/entry.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/raftpb_bindings/entry.rs -------------------------------------------------------------------------------- /src/raftpb_bindings/entry_type.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/raftpb_bindings/entry_type.rs -------------------------------------------------------------------------------- /src/raftpb_bindings/hard_state.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/raftpb_bindings/hard_state.rs -------------------------------------------------------------------------------- /src/raftpb_bindings/message.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/raftpb_bindings/message.rs -------------------------------------------------------------------------------- /src/raftpb_bindings/message_type.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/raftpb_bindings/message_type.rs -------------------------------------------------------------------------------- /src/raftpb_bindings/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/raftpb_bindings/mod.rs -------------------------------------------------------------------------------- /src/raftpb_bindings/snapshot.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/raftpb_bindings/snapshot.rs -------------------------------------------------------------------------------- /src/raftpb_bindings/snapshot_metadata.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/raftpb_bindings/snapshot_metadata.rs -------------------------------------------------------------------------------- /src/utils/deserializer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/utils/deserializer.rs -------------------------------------------------------------------------------- /src/utils/errors.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/utils/errors.rs -------------------------------------------------------------------------------- /src/utils/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/utils/mod.rs -------------------------------------------------------------------------------- /src/utils/reference.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/utils/reference.rs -------------------------------------------------------------------------------- /src/utils/unsafe_cast.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lablup/rraft-py/HEAD/src/utils/unsafe_cast.rs --------------------------------------------------------------------------------