dirsql 0.3.27__tar.gz → 0.3.28__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.
- {dirsql-0.3.27 → dirsql-0.3.28}/Cargo.lock +1 -1
- {dirsql-0.3.27 → dirsql-0.3.28}/PKG-INFO +1 -10
- {dirsql-0.3.27/packages/python → dirsql-0.3.28}/README.md +0 -9
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/cli/index.md +6 -4
- {dirsql-0.3.27/packages/rust → dirsql-0.3.28}/docs/getting-started.md +4 -1
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/Cargo.toml +1 -1
- {dirsql-0.3.27 → dirsql-0.3.28/packages/python}/README.md +0 -9
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/cli/index.md +6 -4
- {dirsql-0.3.27 → dirsql-0.3.28/packages/python}/docs/getting-started.md +4 -1
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/docs/cli/index.md +6 -4
- {dirsql-0.3.27/packages/python → dirsql-0.3.28/packages/rust}/docs/getting-started.md +4 -1
- {dirsql-0.3.27 → dirsql-0.3.28}/Cargo.toml +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/dirsql/__init__.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/dirsql/_async.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/dirsql/_async_test.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/dirsql/_dirsql.pyi +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/dirsql/cli/__init__.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/dirsql/cli/binary_path.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/dirsql/cli/binary_path_test.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/dirsql/cli/interpret/__init__.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/dirsql/cli/interpret/dispatch_extract.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/dirsql/cli/interpret/dispatch_extract_test.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/dirsql/cli/interpret/load_app.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/dirsql/cli/interpret/load_app_test.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/dirsql/cli/interpret/run.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/dirsql/cli/interpret/run_test.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/dirsql/cli/interpret/write_message.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/dirsql/cli/interpret/write_message_test.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/dirsql/cli/is_windows.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/dirsql/cli/is_windows_test.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/dirsql/cli/main.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/dirsql/cli/main_test.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/dirsql/py.typed +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/dirsql/resolve_config.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/dirsql/resolve_config_test.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/.claude/CLAUDE.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/.vitepress/config.ts +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/.vitepress/theme/index.ts +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/.vitepress/theme/lang.ts +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/AGENTS.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/api/index.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/cli/config.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/cli/http-api.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/cli/init.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/cli/server.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/guide/async.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/guide/crdt.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/guide/persistence.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/guide/querying.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/guide/tables.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/guide/watching.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/index.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/migrations.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/package.json +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/playwright.config.ts +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/pnpm-lock.yaml +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/pnpm-workspace.yaml +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/tests/integration/home.spec.ts +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/tests/integration/language-flag.spec.ts +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/tests/unit/config.test.ts +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/tests/unit/lang.test.ts +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/docs/vitest.config.ts +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/conftest.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/.claude/CLAUDE.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/.vitepress/config.ts +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/.vitepress/theme/index.ts +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/.vitepress/theme/lang.ts +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/AGENTS.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/api/index.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/cli/config.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/cli/http-api.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/cli/init.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/cli/server.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/guide/async.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/guide/crdt.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/guide/persistence.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/guide/querying.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/guide/tables.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/guide/watching.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/index.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/migrations.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/package.json +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/playwright.config.ts +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/pnpm-lock.yaml +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/pnpm-workspace.yaml +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/tests/integration/home.spec.ts +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/tests/integration/language-flag.spec.ts +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/tests/unit/config.test.ts +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/tests/unit/lang.test.ts +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/vitest.config.ts +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/src/lib.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/tests/__init__.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/tests/conftest.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/tests/e2e/__init__.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/tests/integration/__fixtures__/data/a/meta.json +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/tests/integration/__fixtures__/data/b/meta.json +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/tests/integration/__fixtures__/dirsql.config.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/tests/integration/__fixtures__/interpret/data/a/meta.json +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/tests/integration/__fixtures__/interpret/data/b/meta.json +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/tests/integration/__fixtures__/interpret/dirsql.config.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/tests/integration/__fixtures__/interpret/dirsql.config_no_app.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/tests/integration/__fixtures__/interpret/dirsql.config_raises.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/tests/integration/__init__.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/tests/integration/interpret_subprocess.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/tests/integration/test_async_dirsql.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/tests/integration/test_binding.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/tests/integration/test_dirsql.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/tests/integration/test_docs_examples.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/tests/integration/test_docs_gaps.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/tests/integration/test_from_config.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/tests/integration/test_interpret.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/tests/integration/test_native_config.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/tests/integration/test_persist.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/python/tests/integration/test_serialization.py +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/Cargo.toml +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/README.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/benches/db_bench.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/benches/differ_bench.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/benches/matcher_bench.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/benches/scanner_bench.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/docs/api/index.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/docs/cli/config.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/docs/cli/http-api.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/docs/cli/init.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/docs/cli/server.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/docs/guide/async.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/docs/guide/crdt.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/docs/guide/persistence.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/docs/guide/querying.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/docs/guide/tables.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/docs/guide/watching.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/docs/index.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/docs/migrations.md +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/src/bin/dirsql.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/src/cli/init.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/src/cli/mod.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/src/cli/native_config.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/src/cli/router.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/src/cli/serialize.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/src/cli/server.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/src/config.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/src/db.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/src/differ.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/src/lib.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/src/matcher.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/src/persist.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/src/scanner.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/src/watcher.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/tests/async_sdk.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/tests/cli_e2e.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/tests/cli_integration.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/tests/code_review_findings.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/tests/config.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/tests/docs_examples.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/tests/docs_gaps.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/tests/extensions.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/tests/from_config.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/tests/init_e2e.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/tests/init_integration.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/tests/persist.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/tests/readonly_query.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/tests/scanner.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/tests/sdk.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/tests/serialization.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/tests/watch_relative_root.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/packages/rust/tests/watcher.rs +0 -0
- {dirsql-0.3.27 → dirsql-0.3.28}/pyproject.toml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dirsql
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.28
|
|
4
4
|
Requires-Dist: pytest>=8 ; extra == 'dev'
|
|
5
5
|
Requires-Dist: pytest-describe>=2 ; extra == 'dev'
|
|
6
6
|
Requires-Dist: pytest-asyncio>=0.23 ; extra == 'dev'
|
|
@@ -202,15 +202,6 @@ Emitted by `watch()` when a file change produces row-level diffs.
|
|
|
202
202
|
- **`error`** (`str | None`): Error message (for error events).
|
|
203
203
|
- **`file_path`** (`str | None`): The relative file path that triggered the event.
|
|
204
204
|
|
|
205
|
-
## How It Works
|
|
206
|
-
|
|
207
|
-
The Rust core (`rusqlite` + `notify` + `walkdir`) does the heavy lifting:
|
|
208
|
-
|
|
209
|
-
1. **Startup scan**: Walks the directory tree, matches files to tables via glob patterns, calls the user-provided `extract` function for each file, and inserts rows into an in-memory SQLite database.
|
|
210
|
-
2. **File watching**: Uses the `notify` crate (inotify on Linux, FSEvents on macOS) to detect file creates, modifications, and deletions.
|
|
211
|
-
3. **Row diffing**: When a file changes, the new rows are diffed against the previous rows for that file, producing granular insert/update/delete events.
|
|
212
|
-
4. **Python bindings**: PyO3 exposes the Rust core as a native Python extension module. The async layer runs blocking operations in a thread pool via `asyncio.to_thread`.
|
|
213
|
-
|
|
214
205
|
## License
|
|
215
206
|
|
|
216
207
|
MIT
|
|
@@ -184,15 +184,6 @@ Emitted by `watch()` when a file change produces row-level diffs.
|
|
|
184
184
|
- **`error`** (`str | None`): Error message (for error events).
|
|
185
185
|
- **`file_path`** (`str | None`): The relative file path that triggered the event.
|
|
186
186
|
|
|
187
|
-
## How It Works
|
|
188
|
-
|
|
189
|
-
The Rust core (`rusqlite` + `notify` + `walkdir`) does the heavy lifting:
|
|
190
|
-
|
|
191
|
-
1. **Startup scan**: Walks the directory tree, matches files to tables via glob patterns, calls the user-provided `extract` function for each file, and inserts rows into an in-memory SQLite database.
|
|
192
|
-
2. **File watching**: Uses the `notify` crate (inotify on Linux, FSEvents on macOS) to detect file creates, modifications, and deletions.
|
|
193
|
-
3. **Row diffing**: When a file changes, the new rows are diffed against the previous rows for that file, producing granular insert/update/delete events.
|
|
194
|
-
4. **Python bindings**: PyO3 exposes the Rust core as a native Python extension module. The async layer runs blocking operations in a thread pool via `asyncio.to_thread`.
|
|
195
|
-
|
|
196
187
|
## License
|
|
197
188
|
|
|
198
189
|
MIT
|
|
@@ -44,11 +44,13 @@ dirsql
|
|
|
44
44
|
|
|
45
45
|
:::
|
|
46
46
|
|
|
47
|
+
::: warning Node version
|
|
48
|
+
Requires **Node ≥ 20.11**.
|
|
49
|
+
:::
|
|
50
|
+
|
|
47
51
|
::: tip For Rust library consumers
|
|
48
|
-
The `cli` feature is **opt-in**.
|
|
49
|
-
|
|
50
|
-
[Rust library README](https://github.com/thekevinscott/dirsql/tree/main/packages/rust)
|
|
51
|
-
for the library-vs-CLI feature split.
|
|
52
|
+
The `cli` feature is **opt-in**. See the
|
|
53
|
+
[Rust library README](https://github.com/thekevinscott/dirsql/tree/main/packages/rust) for instructions on how to include.
|
|
52
54
|
:::
|
|
53
55
|
|
|
54
56
|
## Quick start
|
|
@@ -19,7 +19,8 @@ cargo add dirsql
|
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
```bash [TypeScript]
|
|
22
|
-
|
|
22
|
+
# The npm CLI requires **Node ≥ 20.11**.
|
|
23
|
+
npm add dirsql
|
|
23
24
|
```
|
|
24
25
|
|
|
25
26
|
```bash [CLI]
|
|
@@ -31,6 +32,8 @@ cargo install dirsql --features cli
|
|
|
31
32
|
|
|
32
33
|
:::
|
|
33
34
|
|
|
35
|
+
|
|
36
|
+
|
|
34
37
|
See the [CLI section](./cli/) for details on the command-line interface, and the [Rust library README](https://github.com/thekevinscott/dirsql/tree/main/packages/rust) for the library-vs-CLI feature split.
|
|
35
38
|
|
|
36
39
|
## Quick start
|
|
@@ -4,7 +4,7 @@ name = "dirsql-py-ext"
|
|
|
4
4
|
# pypi/maturin handler can rewrite it via `write-version` before
|
|
5
5
|
# `maturin build`. `pyproject.toml` declares `dynamic = ["version"]`
|
|
6
6
|
# and maturin reads this field. Mirrors `packages/rust/Cargo.toml`.
|
|
7
|
-
version = "0.3.
|
|
7
|
+
version = "0.3.28"
|
|
8
8
|
edition.workspace = true
|
|
9
9
|
publish = false
|
|
10
10
|
readme = "README.md"
|
|
@@ -184,15 +184,6 @@ Emitted by `watch()` when a file change produces row-level diffs.
|
|
|
184
184
|
- **`error`** (`str | None`): Error message (for error events).
|
|
185
185
|
- **`file_path`** (`str | None`): The relative file path that triggered the event.
|
|
186
186
|
|
|
187
|
-
## How It Works
|
|
188
|
-
|
|
189
|
-
The Rust core (`rusqlite` + `notify` + `walkdir`) does the heavy lifting:
|
|
190
|
-
|
|
191
|
-
1. **Startup scan**: Walks the directory tree, matches files to tables via glob patterns, calls the user-provided `extract` function for each file, and inserts rows into an in-memory SQLite database.
|
|
192
|
-
2. **File watching**: Uses the `notify` crate (inotify on Linux, FSEvents on macOS) to detect file creates, modifications, and deletions.
|
|
193
|
-
3. **Row diffing**: When a file changes, the new rows are diffed against the previous rows for that file, producing granular insert/update/delete events.
|
|
194
|
-
4. **Python bindings**: PyO3 exposes the Rust core as a native Python extension module. The async layer runs blocking operations in a thread pool via `asyncio.to_thread`.
|
|
195
|
-
|
|
196
187
|
## License
|
|
197
188
|
|
|
198
189
|
MIT
|
|
@@ -44,11 +44,13 @@ dirsql
|
|
|
44
44
|
|
|
45
45
|
:::
|
|
46
46
|
|
|
47
|
+
::: warning Node version
|
|
48
|
+
Requires **Node ≥ 20.11**.
|
|
49
|
+
:::
|
|
50
|
+
|
|
47
51
|
::: tip For Rust library consumers
|
|
48
|
-
The `cli` feature is **opt-in**.
|
|
49
|
-
|
|
50
|
-
[Rust library README](https://github.com/thekevinscott/dirsql/tree/main/packages/rust)
|
|
51
|
-
for the library-vs-CLI feature split.
|
|
52
|
+
The `cli` feature is **opt-in**. See the
|
|
53
|
+
[Rust library README](https://github.com/thekevinscott/dirsql/tree/main/packages/rust) for instructions on how to include.
|
|
52
54
|
:::
|
|
53
55
|
|
|
54
56
|
## Quick start
|
|
@@ -19,7 +19,8 @@ cargo add dirsql
|
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
```bash [TypeScript]
|
|
22
|
-
|
|
22
|
+
# The npm CLI requires **Node ≥ 20.11**.
|
|
23
|
+
npm add dirsql
|
|
23
24
|
```
|
|
24
25
|
|
|
25
26
|
```bash [CLI]
|
|
@@ -31,6 +32,8 @@ cargo install dirsql --features cli
|
|
|
31
32
|
|
|
32
33
|
:::
|
|
33
34
|
|
|
35
|
+
|
|
36
|
+
|
|
34
37
|
See the [CLI section](./cli/) for details on the command-line interface, and the [Rust library README](https://github.com/thekevinscott/dirsql/tree/main/packages/rust) for the library-vs-CLI feature split.
|
|
35
38
|
|
|
36
39
|
## Quick start
|
|
@@ -44,11 +44,13 @@ dirsql
|
|
|
44
44
|
|
|
45
45
|
:::
|
|
46
46
|
|
|
47
|
+
::: warning Node version
|
|
48
|
+
Requires **Node ≥ 20.11**.
|
|
49
|
+
:::
|
|
50
|
+
|
|
47
51
|
::: tip For Rust library consumers
|
|
48
|
-
The `cli` feature is **opt-in**.
|
|
49
|
-
|
|
50
|
-
[Rust library README](https://github.com/thekevinscott/dirsql/tree/main/packages/rust)
|
|
51
|
-
for the library-vs-CLI feature split.
|
|
52
|
+
The `cli` feature is **opt-in**. See the
|
|
53
|
+
[Rust library README](https://github.com/thekevinscott/dirsql/tree/main/packages/rust) for instructions on how to include.
|
|
52
54
|
:::
|
|
53
55
|
|
|
54
56
|
## Quick start
|
|
@@ -19,7 +19,8 @@ cargo add dirsql
|
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
```bash [TypeScript]
|
|
22
|
-
|
|
22
|
+
# The npm CLI requires **Node ≥ 20.11**.
|
|
23
|
+
npm add dirsql
|
|
23
24
|
```
|
|
24
25
|
|
|
25
26
|
```bash [CLI]
|
|
@@ -31,6 +32,8 @@ cargo install dirsql --features cli
|
|
|
31
32
|
|
|
32
33
|
:::
|
|
33
34
|
|
|
35
|
+
|
|
36
|
+
|
|
34
37
|
See the [CLI section](./cli/) for details on the command-line interface, and the [Rust library README](https://github.com/thekevinscott/dirsql/tree/main/packages/rust) for the library-vs-CLI feature split.
|
|
35
38
|
|
|
36
39
|
## Quick start
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.3.27 → dirsql-0.3.28}/packages/python/docs/tests/integration/language-flag.spec.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dirsql-0.3.27 → dirsql-0.3.28}/packages/python/tests/integration/__fixtures__/data/a/meta.json
RENAMED
|
File without changes
|
{dirsql-0.3.27 → dirsql-0.3.28}/packages/python/tests/integration/__fixtures__/data/b/meta.json
RENAMED
|
File without changes
|
{dirsql-0.3.27 → dirsql-0.3.28}/packages/python/tests/integration/__fixtures__/dirsql.config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|