aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock162
-rw-r--r--Cargo.toml27
-rw-r--r--log_db/Cargo.toml24
-rw-r--r--log_db/benches/benchmark.rs (renamed from benches/benchmark.rs)0
-rw-r--r--log_db/benches/utils.rs (renamed from benches/utils.rs)0
-rw-r--r--log_db/src/common.rs (renamed from src/common.rs)0
-rw-r--r--log_db/src/forward_log_reader.rs (renamed from src/forward_log_reader.rs)0
-rw-r--r--log_db/src/lib.rs (renamed from src/lib.rs)0
-rw-r--r--log_db/src/primary_memtable.rs (renamed from src/primary_memtable.rs)0
-rw-r--r--log_db/src/reverse_log_reader.rs (renamed from src/reverse_log_reader.rs)0
-rw-r--r--log_db/src/secondary_memtable.rs (renamed from src/secondary_memtable.rs)0
-rw-r--r--log_db/tests/integration.rs (renamed from tests/integration.rs)6
-rw-r--r--log_db/tests/resources/test_db1 (renamed from tests/resources/test_db1)bin31 -> 31 bytes
-rw-r--r--log_db/tests/resources/test_db2 (renamed from tests/resources/test_db2)bin46243 -> 46243 bytes
-rw-r--r--log_db/tests/resources/test_db3 (renamed from tests/resources/test_db3)bin46243 -> 46243 bytes
-rw-r--r--py_bindings/Cargo.toml11
-rw-r--r--py_bindings/src/lib.rs16
17 files changed, 191 insertions, 55 deletions
diff --git a/Cargo.lock b/Cargo.lock
index fa5b94a..3dad95c 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -300,9 +300,9 @@ dependencies = [
[[package]]
name = "futures"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
+checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876"
dependencies = [
"futures-channel",
"futures-core",
@@ -315,9 +315,9 @@ dependencies = [
[[package]]
name = "futures-channel"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10"
dependencies = [
"futures-core",
"futures-sink",
@@ -325,15 +325,15 @@ dependencies = [
[[package]]
name = "futures-core"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e"
[[package]]
name = "futures-executor"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
+checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f"
dependencies = [
"futures-core",
"futures-task",
@@ -342,27 +342,27 @@ dependencies = [
[[package]]
name = "futures-io"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6"
[[package]]
name = "futures-sink"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
+checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7"
[[package]]
name = "futures-task"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988"
[[package]]
name = "futures-util"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"
dependencies = [
"futures-channel",
"futures-core",
@@ -398,9 +398,15 @@ dependencies = [
[[package]]
name = "hashbrown"
-version = "0.14.5"
+version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
+checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb"
+
+[[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
[[package]]
name = "hermit-abi"
@@ -416,15 +422,21 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
[[package]]
name = "indexmap"
-version = "2.5.0"
+version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5"
+checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da"
dependencies = [
"equivalent",
"hashbrown",
]
[[package]]
+name = "indoc"
+version = "2.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5"
+
+[[package]]
name = "is-terminal"
version = "0.4.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -515,6 +527,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
[[package]]
+name = "memoffset"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
name = "num-traits"
version = "0.2.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -525,9 +546,9 @@ dependencies = [
[[package]]
name = "once_cell"
-version = "1.19.0"
+version = "1.20.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775"
[[package]]
name = "oorandom"
@@ -599,6 +620,12 @@ dependencies = [
]
[[package]]
+name = "portable-atomic"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2"
+
+[[package]]
name = "ppv-lite86"
version = "0.2.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -628,6 +655,77 @@ dependencies = [
]
[[package]]
+name = "py_bindings"
+version = "0.1.0"
+dependencies = [
+ "log_db",
+ "pyo3",
+]
+
+[[package]]
+name = "pyo3"
+version = "0.22.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15ee168e30649f7f234c3d49ef5a7a6cbf5134289bc46c29ff3155fa3221c225"
+dependencies = [
+ "cfg-if",
+ "indoc",
+ "libc",
+ "memoffset",
+ "once_cell",
+ "portable-atomic",
+ "pyo3-build-config",
+ "pyo3-ffi",
+ "pyo3-macros",
+ "unindent",
+]
+
+[[package]]
+name = "pyo3-build-config"
+version = "0.22.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e61cef80755fe9e46bb8a0b8f20752ca7676dcc07a5277d8b7768c6172e529b3"
+dependencies = [
+ "once_cell",
+ "target-lexicon",
+]
+
+[[package]]
+name = "pyo3-ffi"
+version = "0.22.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67ce096073ec5405f5ee2b8b31f03a68e02aa10d5d4f565eca04acc41931fa1c"
+dependencies = [
+ "libc",
+ "pyo3-build-config",
+]
+
+[[package]]
+name = "pyo3-macros"
+version = "0.22.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2440c6d12bc8f3ae39f1e775266fa5122fd0c8891ce7520fa6048e683ad3de28"
+dependencies = [
+ "proc-macro2",
+ "pyo3-macros-backend",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "pyo3-macros-backend"
+version = "0.22.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1be962f0e06da8f8465729ea2cb71a416d2257dff56cbe40a70d3e62a93ae5d1"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "pyo3-build-config",
+ "quote",
+ "syn",
+]
+
+[[package]]
name = "quote"
version = "1.0.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -688,9 +786,9 @@ dependencies = [
[[package]]
name = "redox_syscall"
-version = "0.5.6"
+version = "0.5.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "355ae415ccd3a04315d3f8246e86d67689ea74d88d915576e1589a351062a13b"
+checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f"
dependencies = [
"bitflags",
]
@@ -754,9 +852,9 @@ dependencies = [
[[package]]
name = "scc"
-version = "2.1.17"
+version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c947adb109a8afce5fc9c7bf951f87f146e9147b3a6a58413105628fb1d1e66"
+checksum = "836f1e0f4963ef5288b539b643b35e043e76a32d0f4e47e67febf69576527f50"
dependencies = [
"sdd",
]
@@ -857,6 +955,12 @@ dependencies = [
]
[[package]]
+name = "target-lexicon"
+version = "0.12.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
+
+[[package]]
name = "tempfile"
version = "3.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -886,6 +990,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
[[package]]
+name = "unindent"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce"
+
+[[package]]
name = "utf8parse"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/Cargo.toml b/Cargo.toml
index ca77753..ec5c3ea 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,24 +1,3 @@
-[package]
-name = "log_db"
-version = "0.1.0"
-edition = "2021"
-
-[lib]
-crate-type = ["lib"]
-
-[dependencies]
-fs2 = "0.4.3"
-log = "0.4.22"
-priority-queue = "2.1.1"
-
-[dev-dependencies]
-ctor = "0.2.8"
-env_logger = "0.11.5"
-serial_test = "3.1.1"
-criterion = { version = "0.5", features = ["html_reports"] }
-rand = "0.8.5"
-tempfile = "3.13.0"
-
-[[bench]]
-name = "benchmark"
-harness = false
+[workspace]
+resolver = "2"
+members = ["log_db", "py_bindings"]
diff --git a/log_db/Cargo.toml b/log_db/Cargo.toml
new file mode 100644
index 0000000..ca77753
--- /dev/null
+++ b/log_db/Cargo.toml
@@ -0,0 +1,24 @@
+[package]
+name = "log_db"
+version = "0.1.0"
+edition = "2021"
+
+[lib]
+crate-type = ["lib"]
+
+[dependencies]
+fs2 = "0.4.3"
+log = "0.4.22"
+priority-queue = "2.1.1"
+
+[dev-dependencies]
+ctor = "0.2.8"
+env_logger = "0.11.5"
+serial_test = "3.1.1"
+criterion = { version = "0.5", features = ["html_reports"] }
+rand = "0.8.5"
+tempfile = "3.13.0"
+
+[[bench]]
+name = "benchmark"
+harness = false
diff --git a/benches/benchmark.rs b/log_db/benches/benchmark.rs
index 384c9b7..384c9b7 100644
--- a/benches/benchmark.rs
+++ b/log_db/benches/benchmark.rs
diff --git a/benches/utils.rs b/log_db/benches/utils.rs
index 63b3d84..63b3d84 100644
--- a/benches/utils.rs
+++ b/log_db/benches/utils.rs
diff --git a/src/common.rs b/log_db/src/common.rs
index c2af766..c2af766 100644
--- a/src/common.rs
+++ b/log_db/src/common.rs
diff --git a/src/forward_log_reader.rs b/log_db/src/forward_log_reader.rs
index 10788a7..10788a7 100644
--- a/src/forward_log_reader.rs
+++ b/log_db/src/forward_log_reader.rs
diff --git a/src/lib.rs b/log_db/src/lib.rs
index 6787cf1..6787cf1 100644
--- a/src/lib.rs
+++ b/log_db/src/lib.rs
diff --git a/src/primary_memtable.rs b/log_db/src/primary_memtable.rs
index 0c94ceb..0c94ceb 100644
--- a/src/primary_memtable.rs
+++ b/log_db/src/primary_memtable.rs
diff --git a/src/reverse_log_reader.rs b/log_db/src/reverse_log_reader.rs
index 5d80dba..5d80dba 100644
--- a/src/reverse_log_reader.rs
+++ b/log_db/src/reverse_log_reader.rs
diff --git a/src/secondary_memtable.rs b/log_db/src/secondary_memtable.rs
index fcf4a7f..fcf4a7f 100644
--- a/src/secondary_memtable.rs
+++ b/log_db/src/secondary_memtable.rs
diff --git a/tests/integration.rs b/log_db/tests/integration.rs
index e6be74f..a2453b2 100644
--- a/tests/integration.rs
+++ b/log_db/tests/integration.rs
@@ -3,11 +3,7 @@ extern crate tempfile;
use ctor::ctor;
use env_logger;
-use log::debug;
-use log_db::{
- self, ForwardLogReader, RecordField, ACTIVE_LOG_FILENAME, SEQ_LIT_ESCAPE, SEQ_RECORD_SEP,
-};
-use log_db::{Record, RecordValue, DB, TEST_RESOURCES_DIR};
+use log_db::*;
use std::fs::{self, OpenOptions};
use std::path::Path;
use std::thread;
diff --git a/tests/resources/test_db1 b/log_db/tests/resources/test_db1
index 1f19a86..1f19a86 100644
--- a/tests/resources/test_db1
+++ b/log_db/tests/resources/test_db1
Binary files differ
diff --git a/tests/resources/test_db2 b/log_db/tests/resources/test_db2
index 156659f..156659f 100644
--- a/tests/resources/test_db2
+++ b/log_db/tests/resources/test_db2
Binary files differ
diff --git a/tests/resources/test_db3 b/log_db/tests/resources/test_db3
index 156659f..156659f 100644
--- a/tests/resources/test_db3
+++ b/log_db/tests/resources/test_db3
Binary files differ
diff --git a/py_bindings/Cargo.toml b/py_bindings/Cargo.toml
new file mode 100644
index 0000000..2f7a83f
--- /dev/null
+++ b/py_bindings/Cargo.toml
@@ -0,0 +1,11 @@
+[package]
+name = "py_bindings"
+version = "0.1.0"
+edition = "2021"
+
+[lib]
+crate-type = ["lib"]
+
+[dependencies]
+log_db = { path = "../log_db" }
+pyo3 = "0.22.3"
diff --git a/py_bindings/src/lib.rs b/py_bindings/src/lib.rs
new file mode 100644
index 0000000..abee9f2
--- /dev/null
+++ b/py_bindings/src/lib.rs
@@ -0,0 +1,16 @@
+use log_db::*;
+
+pub fn add(left: u64, right: u64) -> u64 {
+ left + right
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn it_works() {
+ let result = add(2, 2);
+ assert_eq!(result, 4);
+ }
+}