dkdc-db 0.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. dkdc_db-0.2.0/Cargo.toml +15 -0
  2. dkdc_db-0.2.0/LICENSE +21 -0
  3. dkdc_db-0.2.0/PKG-INFO +107 -0
  4. dkdc_db-0.2.0/README.md +96 -0
  5. dkdc_db-0.2.0/crates/db-py/Cargo.lock +5513 -0
  6. dkdc_db-0.2.0/crates/db-py/Cargo.toml +23 -0
  7. dkdc_db-0.2.0/crates/db-py/src/lib.rs +174 -0
  8. dkdc_db-0.2.0/crates/dkdc-db-cli/Cargo.toml +29 -0
  9. dkdc_db-0.2.0/crates/dkdc-db-cli/src/cli.rs +108 -0
  10. dkdc_db-0.2.0/crates/dkdc-db-cli/src/lib.rs +145 -0
  11. dkdc_db-0.2.0/crates/dkdc-db-cli/src/main.rs +3 -0
  12. dkdc_db-0.2.0/crates/dkdc-db-client/Cargo.toml +38 -0
  13. dkdc_db-0.2.0/crates/dkdc-db-client/src/cli.rs +58 -0
  14. dkdc_db-0.2.0/crates/dkdc-db-client/src/lib.rs +216 -0
  15. dkdc_db-0.2.0/crates/dkdc-db-client/src/main.rs +56 -0
  16. dkdc_db-0.2.0/crates/dkdc-db-client/src/repl.rs +314 -0
  17. dkdc_db-0.2.0/crates/dkdc-db-client/tests/client_errors.rs +128 -0
  18. dkdc_db-0.2.0/crates/dkdc-db-core/Cargo.toml +30 -0
  19. dkdc_db-0.2.0/crates/dkdc-db-core/benches/benchmark.rs +530 -0
  20. dkdc_db-0.2.0/crates/dkdc-db-core/src/catalog.rs +115 -0
  21. dkdc_db-0.2.0/crates/dkdc-db-core/src/config.rs +39 -0
  22. dkdc_db-0.2.0/crates/dkdc-db-core/src/convert.rs +130 -0
  23. dkdc_db-0.2.0/crates/dkdc-db-core/src/db.rs +123 -0
  24. dkdc_db-0.2.0/crates/dkdc-db-core/src/error.rs +187 -0
  25. dkdc_db-0.2.0/crates/dkdc-db-core/src/lib.rs +19 -0
  26. dkdc_db-0.2.0/crates/dkdc-db-core/src/manager.rs +228 -0
  27. dkdc_db-0.2.0/crates/dkdc-db-core/src/plan.rs +179 -0
  28. dkdc_db-0.2.0/crates/dkdc-db-core/src/provider.rs +67 -0
  29. dkdc_db-0.2.0/crates/dkdc-db-core/src/router.rs +157 -0
  30. dkdc_db-0.2.0/crates/dkdc-db-core/src/schema.rs +182 -0
  31. dkdc_db-0.2.0/crates/dkdc-db-core/src/write.rs +19 -0
  32. dkdc_db-0.2.0/crates/dkdc-db-core/tests/concurrency.rs +166 -0
  33. dkdc_db-0.2.0/crates/dkdc-db-core/tests/consistency.rs +201 -0
  34. dkdc_db-0.2.0/crates/dkdc-db-core/tests/convert.rs +484 -0
  35. dkdc_db-0.2.0/crates/dkdc-db-core/tests/critical_fixes.rs +92 -0
  36. dkdc_db-0.2.0/crates/dkdc-db-core/tests/ddl.rs +66 -0
  37. dkdc_db-0.2.0/crates/dkdc-db-core/tests/edge_cases.rs +232 -0
  38. dkdc_db-0.2.0/crates/dkdc-db-core/tests/error_paths.rs +118 -0
  39. dkdc_db-0.2.0/crates/dkdc-db-core/tests/file_backed.rs +34 -0
  40. dkdc_db-0.2.0/crates/dkdc-db-core/tests/multi_db.rs +156 -0
  41. dkdc_db-0.2.0/crates/dkdc-db-core/tests/multi_db_scenarios.rs +338 -0
  42. dkdc_db-0.2.0/crates/dkdc-db-core/tests/roundtrip.rs +60 -0
  43. dkdc_db-0.2.0/crates/dkdc-db-core/tests/scale.rs +320 -0
  44. dkdc_db-0.2.0/crates/dkdc-db-core/tests/types.rs +93 -0
  45. dkdc_db-0.2.0/crates/dkdc-db-core/tests/validation.rs +156 -0
  46. dkdc_db-0.2.0/crates/dkdc-db-server/Cargo.toml +24 -0
  47. dkdc_db-0.2.0/crates/dkdc-db-server/src/api.rs +241 -0
  48. dkdc_db-0.2.0/crates/dkdc-db-server/src/lib.rs +43 -0
  49. dkdc_db-0.2.0/crates/dkdc-db-server/tests/client_server.rs +265 -0
  50. dkdc_db-0.2.0/crates/dkdc-db-server/tests/error_responses.rs +233 -0
  51. dkdc_db-0.2.0/py/dkdc_db/__init__.py +13 -0
  52. dkdc_db-0.2.0/py/dkdc_db/_core.pyi +15 -0
  53. dkdc_db-0.2.0/py/dkdc_db/py.typed +0 -0
  54. dkdc_db-0.2.0/pyproject.toml +35 -0
@@ -0,0 +1,15 @@
1
+ [workspace]
2
+ members = [
3
+ "crates/dkdc-db-core",
4
+ "crates/dkdc-db-server",
5
+ "crates/dkdc-db-client",
6
+ "crates/dkdc-db-cli",
7
+ "crates/dkdc-db-bench",
8
+ ]
9
+ resolver = "2"
10
+ exclude = ["crates/db-py"]
11
+
12
+ [profile.release]
13
+ lto = true
14
+ strip = true
15
+ codegen-units = 1
dkdc_db-0.2.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 dkdc-io
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
dkdc_db-0.2.0/PKG-INFO ADDED
@@ -0,0 +1,107 @@
1
+ Metadata-Version: 2.4
2
+ Name: dkdc-db
3
+ Version: 0.2.0
4
+ License-File: LICENSE
5
+ Summary: HTAP embedded database
6
+ Author-email: Cody <cody@dkdc.io>
7
+ License-Expression: MIT
8
+ Requires-Python: >=3.11
9
+ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
10
+
11
+ # dkdc-db
12
+
13
+ [![GitHub Release](https://img.shields.io/github/v/release/dkdc-io/db?color=blue)](https://github.com/dkdc-io/db/releases)
14
+ [![PyPI](https://img.shields.io/pypi/v/dkdc-db?color=blue)](https://pypi.org/project/dkdc-db/)
15
+ [![crates.io](https://img.shields.io/crates/v/dkdc-db-cli?color=blue)](https://crates.io/crates/dkdc-db-cli)
16
+ [![CI](https://img.shields.io/github/actions/workflow/status/dkdc-io/db/ci.yml?branch=main&label=CI)](https://github.com/dkdc-io/db/actions/workflows/ci.yml)
17
+ [![License: MIT](https://img.shields.io/badge/license-MIT-8A2BE2.svg)](https://github.com/dkdc-io/db/blob/main/LICENSE)
18
+
19
+ HTAP database system. Built-in input validation, SQL safety checks (rejects stacked queries, `ATTACH DATABASE`, `LOAD_EXTENSION`), request size limits, structured tracing, and graceful shutdown.
20
+
21
+ ## Install
22
+
23
+ Recommended:
24
+
25
+ ```bash
26
+ curl -LsSf https://dkdc.sh/db/install.sh | sh
27
+ ```
28
+
29
+ Pre-built binaries are available for Linux and macOS via Python (`uv`). Windows users should install via `cargo` or use macOS/Linux.
30
+
31
+ uv:
32
+
33
+ ```bash
34
+ uv tool install dkdc-db
35
+ ```
36
+
37
+ cargo:
38
+
39
+ ```bash
40
+ cargo install dkdc-db-cli dkdc-db-server
41
+ ```
42
+
43
+ Verify installation:
44
+
45
+ ```bash
46
+ db --version
47
+ ```
48
+
49
+ You can use `uvx` to run it without installing:
50
+
51
+ ```bash
52
+ uvx --from dkdc-db db
53
+ ```
54
+
55
+ ## Usage
56
+
57
+ ### CLI
58
+
59
+ ```bash
60
+ db serve # Start multi-database server in tmux
61
+ db status # Check server status
62
+ db logs # View recent logs
63
+ db attach # Attach to tmux session
64
+ db stop # Stop server
65
+
66
+ db create mydb # Create a database
67
+ db list # List databases
68
+ db repl --db mydb # Interactive SQL REPL
69
+ db execute --db mydb "SQL" # One-shot write
70
+ db query --db mydb "SQL" # One-shot OLTP query
71
+ db query "SQL" # Cross-db analytical query
72
+ ```
73
+
74
+ ### Rust
75
+
76
+ ```rust
77
+ use dkdc_db_core::DbManager;
78
+
79
+ let mgr = DbManager::new().await?;
80
+ mgr.create_db("mydb").await?;
81
+ mgr.execute("mydb", "CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)").await?;
82
+ mgr.execute("mydb", "INSERT INTO users VALUES (1, 'alice')").await?;
83
+ let results = mgr.query("SELECT * FROM mydb.public.users").await?;
84
+ ```
85
+
86
+ ### Python
87
+
88
+ ```python
89
+ from dkdc_db import Db
90
+
91
+ db = Db() # connects to http://127.0.0.1:4200
92
+
93
+ # database management
94
+ db.create_db("mydb")
95
+ print(db.list_dbs())
96
+
97
+ # write
98
+ db.execute("mydb", "CREATE TABLE t (id INT, name TEXT)")
99
+ db.execute("mydb", "INSERT INTO t VALUES (1, 'hello')")
100
+
101
+ # read (analytical, cross-db)
102
+ result = db.query("SELECT * FROM mydb.t")
103
+
104
+ # read (fast path, single db)
105
+ result = db.query_oltp("mydb", "SELECT * FROM t")
106
+ ```
107
+
@@ -0,0 +1,96 @@
1
+ # dkdc-db
2
+
3
+ [![GitHub Release](https://img.shields.io/github/v/release/dkdc-io/db?color=blue)](https://github.com/dkdc-io/db/releases)
4
+ [![PyPI](https://img.shields.io/pypi/v/dkdc-db?color=blue)](https://pypi.org/project/dkdc-db/)
5
+ [![crates.io](https://img.shields.io/crates/v/dkdc-db-cli?color=blue)](https://crates.io/crates/dkdc-db-cli)
6
+ [![CI](https://img.shields.io/github/actions/workflow/status/dkdc-io/db/ci.yml?branch=main&label=CI)](https://github.com/dkdc-io/db/actions/workflows/ci.yml)
7
+ [![License: MIT](https://img.shields.io/badge/license-MIT-8A2BE2.svg)](https://github.com/dkdc-io/db/blob/main/LICENSE)
8
+
9
+ HTAP database system. Built-in input validation, SQL safety checks (rejects stacked queries, `ATTACH DATABASE`, `LOAD_EXTENSION`), request size limits, structured tracing, and graceful shutdown.
10
+
11
+ ## Install
12
+
13
+ Recommended:
14
+
15
+ ```bash
16
+ curl -LsSf https://dkdc.sh/db/install.sh | sh
17
+ ```
18
+
19
+ Pre-built binaries are available for Linux and macOS via Python (`uv`). Windows users should install via `cargo` or use macOS/Linux.
20
+
21
+ uv:
22
+
23
+ ```bash
24
+ uv tool install dkdc-db
25
+ ```
26
+
27
+ cargo:
28
+
29
+ ```bash
30
+ cargo install dkdc-db-cli dkdc-db-server
31
+ ```
32
+
33
+ Verify installation:
34
+
35
+ ```bash
36
+ db --version
37
+ ```
38
+
39
+ You can use `uvx` to run it without installing:
40
+
41
+ ```bash
42
+ uvx --from dkdc-db db
43
+ ```
44
+
45
+ ## Usage
46
+
47
+ ### CLI
48
+
49
+ ```bash
50
+ db serve # Start multi-database server in tmux
51
+ db status # Check server status
52
+ db logs # View recent logs
53
+ db attach # Attach to tmux session
54
+ db stop # Stop server
55
+
56
+ db create mydb # Create a database
57
+ db list # List databases
58
+ db repl --db mydb # Interactive SQL REPL
59
+ db execute --db mydb "SQL" # One-shot write
60
+ db query --db mydb "SQL" # One-shot OLTP query
61
+ db query "SQL" # Cross-db analytical query
62
+ ```
63
+
64
+ ### Rust
65
+
66
+ ```rust
67
+ use dkdc_db_core::DbManager;
68
+
69
+ let mgr = DbManager::new().await?;
70
+ mgr.create_db("mydb").await?;
71
+ mgr.execute("mydb", "CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)").await?;
72
+ mgr.execute("mydb", "INSERT INTO users VALUES (1, 'alice')").await?;
73
+ let results = mgr.query("SELECT * FROM mydb.public.users").await?;
74
+ ```
75
+
76
+ ### Python
77
+
78
+ ```python
79
+ from dkdc_db import Db
80
+
81
+ db = Db() # connects to http://127.0.0.1:4200
82
+
83
+ # database management
84
+ db.create_db("mydb")
85
+ print(db.list_dbs())
86
+
87
+ # write
88
+ db.execute("mydb", "CREATE TABLE t (id INT, name TEXT)")
89
+ db.execute("mydb", "INSERT INTO t VALUES (1, 'hello')")
90
+
91
+ # read (analytical, cross-db)
92
+ result = db.query("SELECT * FROM mydb.t")
93
+
94
+ # read (fast path, single db)
95
+ result = db.query_oltp("mydb", "SELECT * FROM t")
96
+ ```