localqueue 0.4.1__tar.gz → 1.0.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 (88) hide show
  1. localqueue-1.0.0/.github/workflows/ci.yml +133 -0
  2. localqueue-1.0.0/.github/workflows/stress.yml +57 -0
  3. localqueue-1.0.0/.github/workflows/wheels.yml +118 -0
  4. localqueue-1.0.0/.gitignore +15 -0
  5. localqueue-1.0.0/Cargo.lock +299 -0
  6. localqueue-1.0.0/Cargo.toml +15 -0
  7. localqueue-1.0.0/PKG-INFO +131 -0
  8. localqueue-1.0.0/README.md +118 -0
  9. localqueue-1.0.0/benchmarks/README.md +33 -0
  10. localqueue-1.0.0/benchmarks/queue_bench.py +228 -0
  11. localqueue-1.0.0/docs/guarantees.md +80 -0
  12. localqueue-1.0.0/docs/internal/initial_idea.md +137 -0
  13. localqueue-1.0.0/examples/basic.py +25 -0
  14. localqueue-1.0.0/pyproject.toml +27 -0
  15. localqueue-1.0.0/python/localqueue/__init__.py +16 -0
  16. localqueue-1.0.0/python/localqueue/core.py +272 -0
  17. localqueue-1.0.0/python/localqueue/exceptions.py +5 -0
  18. localqueue-1.0.0/python/localqueue/job.py +25 -0
  19. localqueue-1.0.0/python/localqueue/localqueue.pyi +58 -0
  20. localqueue-1.0.0/python/localqueue/worker.py +156 -0
  21. localqueue-1.0.0/src/error.rs +58 -0
  22. localqueue-1.0.0/src/lib.rs +22 -0
  23. localqueue-1.0.0/src/queue.rs +655 -0
  24. localqueue-1.0.0/src/schema.rs +21 -0
  25. localqueue-1.0.0/src/storage.rs +51 -0
  26. localqueue-1.0.0/stress/run_soak.py +233 -0
  27. localqueue-1.0.0/tests/__init__.py +0 -0
  28. localqueue-1.0.0/tests/test_concurrency.py +108 -0
  29. localqueue-1.0.0/tests/test_contract.py +288 -0
  30. localqueue-1.0.0/tests/test_core.py +191 -0
  31. localqueue-1.0.0/tests/test_gil.py +52 -0
  32. localqueue-1.0.0/tests/test_maintenance.py +131 -0
  33. localqueue-1.0.0/tests/test_worker.py +240 -0
  34. localqueue-0.4.1/.gitignore +0 -23
  35. localqueue-0.4.1/CHANGELOG.md +0 -112
  36. localqueue-0.4.1/LICENSE +0 -21
  37. localqueue-0.4.1/PKG-INFO +0 -106
  38. localqueue-0.4.1/README.md +0 -71
  39. localqueue-0.4.1/docs/api.md +0 -389
  40. localqueue-0.4.1/docs/compare.md +0 -50
  41. localqueue-0.4.1/docs/develop.md +0 -137
  42. localqueue-0.4.1/docs/index.md +0 -86
  43. localqueue-0.4.1/docs/operational-maturity.md +0 -137
  44. localqueue-0.4.1/docs/queues.md +0 -585
  45. localqueue-0.4.1/docs/release.md +0 -47
  46. localqueue-0.4.1/docs/retries.md +0 -363
  47. localqueue-0.4.1/docs/stability.md +0 -59
  48. localqueue-0.4.1/docs/use-cases/local-outbox.md +0 -83
  49. localqueue-0.4.1/docs/use-cases/operator-recovery.md +0 -85
  50. localqueue-0.4.1/docs/use-cases/persistent-retries.md +0 -74
  51. localqueue-0.4.1/docs/use-cases.md +0 -54
  52. localqueue-0.4.1/examples/email_worker.py +0 -10
  53. localqueue-0.4.1/examples/enqueue_email.py +0 -26
  54. localqueue-0.4.1/examples/process_webhook.sh +0 -10
  55. localqueue-0.4.1/examples/retry_demo.py +0 -289
  56. localqueue-0.4.1/examples/sqlite_concurrency_benchmark.py +0 -313
  57. localqueue-0.4.1/examples/sqlite_process_harness.py +0 -455
  58. localqueue-0.4.1/localqueue/__init__.py +0 -69
  59. localqueue-0.4.1/localqueue/cli.py +0 -305
  60. localqueue-0.4.1/localqueue/cli_commands.py +0 -583
  61. localqueue-0.4.1/localqueue/cli_support.py +0 -242
  62. localqueue-0.4.1/localqueue/cli_worker_commands.py +0 -318
  63. localqueue-0.4.1/localqueue/failure.py +0 -19
  64. localqueue-0.4.1/localqueue/paths.py +0 -23
  65. localqueue-0.4.1/localqueue/queue.py +0 -313
  66. localqueue-0.4.1/localqueue/retry/__init__.py +0 -41
  67. localqueue-0.4.1/localqueue/retry/stores/__init__.py +0 -13
  68. localqueue-0.4.1/localqueue/retry/stores/_shared.py +0 -22
  69. localqueue-0.4.1/localqueue/retry/stores/base.py +0 -41
  70. localqueue-0.4.1/localqueue/retry/stores/lmdb.py +0 -80
  71. localqueue-0.4.1/localqueue/retry/stores/memory.py +0 -51
  72. localqueue-0.4.1/localqueue/retry/stores/sqlite.py +0 -148
  73. localqueue-0.4.1/localqueue/retry/tenacity.py +0 -794
  74. localqueue-0.4.1/localqueue/services/__init__.py +0 -1
  75. localqueue-0.4.1/localqueue/services/queue_worker.py +0 -622
  76. localqueue-0.4.1/localqueue/stores/__init__.py +0 -14
  77. localqueue-0.4.1/localqueue/stores/_shared.py +0 -404
  78. localqueue-0.4.1/localqueue/stores/base.py +0 -137
  79. localqueue-0.4.1/localqueue/stores/lmdb.py +0 -555
  80. localqueue-0.4.1/localqueue/stores/memory.py +0 -318
  81. localqueue-0.4.1/localqueue/stores/sqlite.py +0 -715
  82. localqueue-0.4.1/localqueue/worker.py +0 -415
  83. localqueue-0.4.1/pyproject.toml +0 -127
  84. localqueue-0.4.1/tests/test_cli.py +0 -2762
  85. localqueue-0.4.1/tests/test_process_harness.py +0 -77
  86. localqueue-0.4.1/tests/test_queue.py +0 -2905
  87. localqueue-0.4.1/tests/test_retry.py +0 -1312
  88. localqueue-0.4.1/uv.lock +0 -579
@@ -0,0 +1,133 @@
1
+ name: CI
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches: [main]
7
+ workflow_dispatch:
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ concurrency:
13
+ group: ci-${{ github.workflow }}-${{ github.ref }}
14
+ cancel-in-progress: true
15
+
16
+ jobs:
17
+ rust-quality:
18
+ name: Rust format and Clippy
19
+ runs-on: ubuntu-latest
20
+ steps:
21
+ - name: Check out repository
22
+ uses: actions/checkout@v6
23
+
24
+ - name: Install Rust
25
+ uses: dtolnay/rust-toolchain@stable
26
+ with:
27
+ components: rustfmt, clippy
28
+
29
+ - name: Cache Cargo dependencies
30
+ uses: actions/cache@v4
31
+ with:
32
+ path: |
33
+ ~/.cargo/registry
34
+ ~/.cargo/git
35
+ target
36
+ key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.toml', 'Cargo.lock') }}
37
+ restore-keys: |
38
+ ${{ runner.os }}-cargo-
39
+
40
+ - name: Check formatting
41
+ run: cargo fmt --all --check
42
+
43
+ - name: Run Clippy
44
+ run: cargo clippy --locked --all-targets --all-features -- -D warnings
45
+
46
+ msrv:
47
+ name: Rust MSRV 1.83
48
+ runs-on: ubuntu-latest
49
+ steps:
50
+ - name: Check out repository
51
+ uses: actions/checkout@v6
52
+
53
+ - name: Install Rust 1.83
54
+ uses: dtolnay/rust-toolchain@1.83
55
+
56
+ - name: Check with MSRV
57
+ run: cargo check --locked
58
+
59
+ python-tests:
60
+ name: Python tests (${{ matrix.os }}, Python ${{ matrix.python }})
61
+ strategy:
62
+ fail-fast: false
63
+ matrix:
64
+ include:
65
+ - os: ubuntu-latest
66
+ python: '3.10'
67
+ - os: ubuntu-latest
68
+ python: '3.14'
69
+ - os: macos-15
70
+ python: '3.14'
71
+ - os: windows-latest
72
+ python: '3.14'
73
+ runs-on: ${{ matrix.os }}
74
+ steps:
75
+ - name: Check out repository
76
+ uses: actions/checkout@v6
77
+
78
+ - name: Set up Python
79
+ uses: actions/setup-python@v6
80
+ with:
81
+ python-version: ${{ matrix.python }}
82
+ cache: pip
83
+
84
+ - name: Install test dependencies
85
+ run: python -m pip install --upgrade "maturin>=1.14,<2" "pytest>=8,<10"
86
+
87
+ - name: Build the extension in the test environment
88
+ run: maturin develop --release --locked
89
+
90
+ - name: Run tests
91
+ run: pytest -ra
92
+
93
+ wheel-smoke:
94
+ name: Build and smoke-test wheel
95
+ needs: [rust-quality, python-tests]
96
+ runs-on: ubuntu-latest
97
+ steps:
98
+ - name: Check out repository
99
+ uses: actions/checkout@v6
100
+
101
+ - name: Set up Python
102
+ uses: actions/setup-python@v6
103
+ with:
104
+ python-version: '3.13'
105
+
106
+ - name: Install maturin
107
+ run: python -m pip install --upgrade "maturin>=1.14,<2"
108
+
109
+ - name: Build wheel
110
+ run: maturin build --release --locked -i python
111
+
112
+ - name: Install wheel
113
+ shell: bash
114
+ run: python -m pip install --force-reinstall target/wheels/*.whl
115
+
116
+ - name: Import package outside the checkout
117
+ shell: bash
118
+ run: |
119
+ cd "$RUNNER_TEMP"
120
+ python - <<'PY'
121
+ import tempfile
122
+
123
+ from localqueue import SimpleQueue
124
+
125
+ with tempfile.TemporaryDirectory() as path:
126
+ queue = SimpleQueue(path)
127
+ queue.put({"source": "wheel-smoke"})
128
+ job = queue.get(block=False)
129
+ assert job.data == {"source": "wheel-smoke"}
130
+ queue.ack(job)
131
+ assert queue.stats()["acked"] == 1
132
+ queue.close()
133
+ PY
@@ -0,0 +1,57 @@
1
+ name: Multiprocess stress
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ duration:
7
+ description: "Duração em segundos"
8
+ required: false
9
+ default: '1800'
10
+ messages:
11
+ description: "Quantidade de mensagens"
12
+ required: false
13
+ default: '50000'
14
+ schedule:
15
+ - cron: '17 3 * * 0'
16
+
17
+ permissions:
18
+ contents: read
19
+
20
+ jobs:
21
+ soak:
22
+ name: Multiprocess soak
23
+ runs-on: ubuntu-latest
24
+ timeout-minutes: 40
25
+ steps:
26
+ - name: Check out repository
27
+ uses: actions/checkout@v6
28
+
29
+ - name: Set up Python
30
+ uses: actions/setup-python@v6
31
+ with:
32
+ python-version: '3.13'
33
+
34
+ - name: Install maturin
35
+ run: python -m pip install --upgrade "maturin>=1.14,<2"
36
+
37
+ - name: Build the extension
38
+ run: maturin develop --release --locked
39
+
40
+ - name: Run stress test
41
+ shell: bash
42
+ run: |
43
+ python stress/run_soak.py \
44
+ --duration "${{ inputs.duration || '1800' }}" \
45
+ --messages "${{ inputs.messages || '50000' }}" \
46
+ --producers 4 \
47
+ --consumers 8 \
48
+ --crash-rate 0.01 \
49
+ > stress-report.json
50
+
51
+ - name: Upload stress report
52
+ if: always()
53
+ uses: actions/upload-artifact@v4
54
+ with:
55
+ name: stress-report-${{ github.run_id }}
56
+ path: stress-report.json
57
+ if-no-files-found: warn
@@ -0,0 +1,118 @@
1
+ name: Wheels
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ push:
6
+ tags: ['v*']
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ build:
13
+ name: ${{ matrix.name }}
14
+ strategy:
15
+ fail-fast: false
16
+ matrix:
17
+ include:
18
+ - name: linux-x86_64
19
+ os: ubuntu-latest
20
+ target: x86_64-unknown-linux-gnu
21
+ manylinux: '2_17'
22
+ - name: linux-aarch64
23
+ os: ubuntu-latest
24
+ target: aarch64-unknown-linux-gnu
25
+ manylinux: '2_17'
26
+ - name: macos-x86_64
27
+ os: macos-15-intel
28
+ target: x86_64-apple-darwin
29
+ manylinux: off
30
+ - name: macos-arm64
31
+ os: macos-15
32
+ target: aarch64-apple-darwin
33
+ manylinux: off
34
+ - name: windows-x86_64
35
+ os: windows-latest
36
+ target: x86_64-pc-windows-msvc
37
+ manylinux: off
38
+ runs-on: ${{ matrix.os }}
39
+ environment: pypi
40
+ permissions:
41
+ contents: read
42
+ id-token: write
43
+ steps:
44
+ - name: Check out repository
45
+ uses: actions/checkout@v6
46
+
47
+ - name: Set up QEMU for Linux ARM64
48
+ if: matrix.name == 'linux-aarch64'
49
+ uses: docker/setup-qemu-action@v3
50
+
51
+ - name: Set up Python interpreters
52
+ uses: actions/setup-python@v6
53
+ with:
54
+ python-version: |
55
+ 3.10
56
+ 3.11
57
+ 3.12
58
+ 3.13
59
+ 3.14
60
+
61
+ - name: Build wheels with maturin
62
+ uses: PyO3/maturin-action@v1
63
+ with:
64
+ command: build
65
+ target: ${{ matrix.target }}
66
+ manylinux: ${{ matrix.manylinux }}
67
+ args: --release --locked --find-interpreter --compatibility pypi
68
+ maturin-version: v1.14.1
69
+
70
+ - name: Set up smoke-test Python
71
+ uses: actions/setup-python@v6
72
+ with:
73
+ python-version: '3.13'
74
+
75
+ - name: Install one wheel for smoke testing
76
+ if: matrix.name != 'linux-aarch64'
77
+ shell: bash
78
+ run: python -m pip install --force-reinstall --no-index target/wheels/*cp313*.whl
79
+
80
+ - name: Smoke-test installed wheel outside the checkout
81
+ if: matrix.name != 'linux-aarch64'
82
+ shell: bash
83
+ run: |
84
+ cd "$RUNNER_TEMP"
85
+ python - <<'PY'
86
+ import tempfile
87
+
88
+ from localqueue import SimpleQueue
89
+
90
+ with tempfile.TemporaryDirectory() as path:
91
+ queue = SimpleQueue(path)
92
+ queue.put({"platform": "wheel"})
93
+ job = queue.get(block=False)
94
+ queue.ack(job)
95
+ assert queue.stats()["acked"] == 1
96
+ queue.close()
97
+ PY
98
+
99
+ - name: Validate Linux ARM64 wheel artifact
100
+ if: matrix.name == 'linux-aarch64'
101
+ shell: bash
102
+ run: test -n "$(find target/wheels -name '*cp313*.whl' -print -quit)"
103
+
104
+ - name: Install release tools
105
+ if: startsWith(github.ref, 'refs/tags/v')
106
+ run: python -m pip install --upgrade "maturin>=1.14,<2" uv
107
+
108
+ - name: Build and publish source distribution
109
+ if: matrix.name == 'linux-x86_64' && startsWith(github.ref, 'refs/tags/v')
110
+ shell: bash
111
+ run: |
112
+ maturin sdist --out target/dist
113
+ uv publish target/dist/*.tar.gz
114
+
115
+ - name: Publish wheel
116
+ if: startsWith(github.ref, 'refs/tags/v')
117
+ shell: bash
118
+ run: uv publish target/wheels/*.whl
@@ -0,0 +1,15 @@
1
+ .venv/
2
+ __pycache__/
3
+ *.py[cod]
4
+ *.egg-info/
5
+ .pytest_cache/
6
+ .mypy_cache/
7
+ .ruff_cache/
8
+ *.db
9
+ *.wal
10
+ *.shm
11
+ data/
12
+ dist/
13
+ build/
14
+ target/
15
+ *.so
@@ -0,0 +1,299 @@
1
+ # This file is automatically @generated by Cargo.
2
+ # It is not intended for manual editing.
3
+ version = 4
4
+
5
+ [[package]]
6
+ name = "ahash"
7
+ version = "0.8.12"
8
+ source = "registry+https://github.com/rust-lang/crates.io-index"
9
+ checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75"
10
+ dependencies = [
11
+ "cfg-if",
12
+ "once_cell",
13
+ "version_check",
14
+ "zerocopy",
15
+ ]
16
+
17
+ [[package]]
18
+ name = "bitflags"
19
+ version = "2.13.1"
20
+ source = "registry+https://github.com/rust-lang/crates.io-index"
21
+ checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da"
22
+
23
+ [[package]]
24
+ name = "cc"
25
+ version = "1.3.0"
26
+ source = "registry+https://github.com/rust-lang/crates.io-index"
27
+ checksum = "c89588d05638b5b4594a3348a2d6c20277e43a7f5c5202b05cc56888475a47b8"
28
+ dependencies = [
29
+ "find-msvc-tools",
30
+ "shlex",
31
+ ]
32
+
33
+ [[package]]
34
+ name = "cfg-if"
35
+ version = "1.0.4"
36
+ source = "registry+https://github.com/rust-lang/crates.io-index"
37
+ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
38
+
39
+ [[package]]
40
+ name = "fallible-iterator"
41
+ version = "0.3.0"
42
+ source = "registry+https://github.com/rust-lang/crates.io-index"
43
+ checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"
44
+
45
+ [[package]]
46
+ name = "fallible-streaming-iterator"
47
+ version = "0.1.9"
48
+ source = "registry+https://github.com/rust-lang/crates.io-index"
49
+ checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
50
+
51
+ [[package]]
52
+ name = "find-msvc-tools"
53
+ version = "0.1.9"
54
+ source = "registry+https://github.com/rust-lang/crates.io-index"
55
+ checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
56
+
57
+ [[package]]
58
+ name = "hashbrown"
59
+ version = "0.14.5"
60
+ source = "registry+https://github.com/rust-lang/crates.io-index"
61
+ checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
62
+ dependencies = [
63
+ "ahash",
64
+ ]
65
+
66
+ [[package]]
67
+ name = "hashlink"
68
+ version = "0.9.1"
69
+ source = "registry+https://github.com/rust-lang/crates.io-index"
70
+ checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af"
71
+ dependencies = [
72
+ "hashbrown",
73
+ ]
74
+
75
+ [[package]]
76
+ name = "heck"
77
+ version = "0.5.0"
78
+ source = "registry+https://github.com/rust-lang/crates.io-index"
79
+ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
80
+
81
+ [[package]]
82
+ name = "libc"
83
+ version = "0.2.186"
84
+ source = "registry+https://github.com/rust-lang/crates.io-index"
85
+ checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
86
+
87
+ [[package]]
88
+ name = "libsqlite3-sys"
89
+ version = "0.30.1"
90
+ source = "registry+https://github.com/rust-lang/crates.io-index"
91
+ checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149"
92
+ dependencies = [
93
+ "cc",
94
+ "pkg-config",
95
+ "vcpkg",
96
+ ]
97
+
98
+ [[package]]
99
+ name = "localqueue"
100
+ version = "1.0.0"
101
+ dependencies = [
102
+ "pyo3",
103
+ "rusqlite",
104
+ "thiserror",
105
+ ]
106
+
107
+ [[package]]
108
+ name = "once_cell"
109
+ version = "1.21.4"
110
+ source = "registry+https://github.com/rust-lang/crates.io-index"
111
+ checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
112
+
113
+ [[package]]
114
+ name = "pkg-config"
115
+ version = "0.3.33"
116
+ source = "registry+https://github.com/rust-lang/crates.io-index"
117
+ checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e"
118
+
119
+ [[package]]
120
+ name = "portable-atomic"
121
+ version = "1.14.0"
122
+ source = "registry+https://github.com/rust-lang/crates.io-index"
123
+ checksum = "3d20d5497ef88037a52ff98267d066e7f11fcc5e99bbfbd58a42336193aacec3"
124
+
125
+ [[package]]
126
+ name = "proc-macro2"
127
+ version = "1.0.107"
128
+ source = "registry+https://github.com/rust-lang/crates.io-index"
129
+ checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
130
+ dependencies = [
131
+ "unicode-ident",
132
+ ]
133
+
134
+ [[package]]
135
+ name = "pyo3"
136
+ version = "0.29.0"
137
+ source = "registry+https://github.com/rust-lang/crates.io-index"
138
+ checksum = "cd274650b21d4bfc26a0a47587962c1edb425f69287324355cd040c3ea66071c"
139
+ dependencies = [
140
+ "libc",
141
+ "once_cell",
142
+ "portable-atomic",
143
+ "pyo3-build-config",
144
+ "pyo3-ffi",
145
+ "pyo3-macros",
146
+ ]
147
+
148
+ [[package]]
149
+ name = "pyo3-build-config"
150
+ version = "0.29.0"
151
+ source = "registry+https://github.com/rust-lang/crates.io-index"
152
+ checksum = "c5e2a7d2f0d013342f295c048ad19237add5154a55b1c5a254c0ec93d4109078"
153
+ dependencies = [
154
+ "target-lexicon",
155
+ ]
156
+
157
+ [[package]]
158
+ name = "pyo3-ffi"
159
+ version = "0.29.0"
160
+ source = "registry+https://github.com/rust-lang/crates.io-index"
161
+ checksum = "ca85c467da1bbc8d866eea5deff9cf29ea5f7785054a17da36e65bda9c05845b"
162
+ dependencies = [
163
+ "libc",
164
+ "pyo3-build-config",
165
+ ]
166
+
167
+ [[package]]
168
+ name = "pyo3-macros"
169
+ version = "0.29.0"
170
+ source = "registry+https://github.com/rust-lang/crates.io-index"
171
+ checksum = "9ac53762fd065daa3194dd09337a38bd793a188100fd1a9304c4ab312d901771"
172
+ dependencies = [
173
+ "proc-macro2",
174
+ "pyo3-macros-backend",
175
+ "quote",
176
+ "syn",
177
+ ]
178
+
179
+ [[package]]
180
+ name = "pyo3-macros-backend"
181
+ version = "0.29.0"
182
+ source = "registry+https://github.com/rust-lang/crates.io-index"
183
+ checksum = "4ca3a1557399783172dc5bf39cfca835157732532cba56b71d2292161e53b362"
184
+ dependencies = [
185
+ "heck",
186
+ "proc-macro2",
187
+ "quote",
188
+ "syn",
189
+ ]
190
+
191
+ [[package]]
192
+ name = "quote"
193
+ version = "1.0.47"
194
+ source = "registry+https://github.com/rust-lang/crates.io-index"
195
+ checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
196
+ dependencies = [
197
+ "proc-macro2",
198
+ ]
199
+
200
+ [[package]]
201
+ name = "rusqlite"
202
+ version = "0.32.1"
203
+ source = "registry+https://github.com/rust-lang/crates.io-index"
204
+ checksum = "7753b721174eb8ff87a9a0e799e2d7bc3749323e773db92e0984debb00019d6e"
205
+ dependencies = [
206
+ "bitflags",
207
+ "fallible-iterator",
208
+ "fallible-streaming-iterator",
209
+ "hashlink",
210
+ "libsqlite3-sys",
211
+ "smallvec",
212
+ ]
213
+
214
+ [[package]]
215
+ name = "shlex"
216
+ version = "2.0.1"
217
+ source = "registry+https://github.com/rust-lang/crates.io-index"
218
+ checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
219
+
220
+ [[package]]
221
+ name = "smallvec"
222
+ version = "1.15.2"
223
+ source = "registry+https://github.com/rust-lang/crates.io-index"
224
+ checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90"
225
+
226
+ [[package]]
227
+ name = "syn"
228
+ version = "2.0.119"
229
+ source = "registry+https://github.com/rust-lang/crates.io-index"
230
+ checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
231
+ dependencies = [
232
+ "proc-macro2",
233
+ "quote",
234
+ "unicode-ident",
235
+ ]
236
+
237
+ [[package]]
238
+ name = "target-lexicon"
239
+ version = "0.13.5"
240
+ source = "registry+https://github.com/rust-lang/crates.io-index"
241
+ checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
242
+
243
+ [[package]]
244
+ name = "thiserror"
245
+ version = "1.0.69"
246
+ source = "registry+https://github.com/rust-lang/crates.io-index"
247
+ checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
248
+ dependencies = [
249
+ "thiserror-impl",
250
+ ]
251
+
252
+ [[package]]
253
+ name = "thiserror-impl"
254
+ version = "1.0.69"
255
+ source = "registry+https://github.com/rust-lang/crates.io-index"
256
+ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
257
+ dependencies = [
258
+ "proc-macro2",
259
+ "quote",
260
+ "syn",
261
+ ]
262
+
263
+ [[package]]
264
+ name = "unicode-ident"
265
+ version = "1.0.24"
266
+ source = "registry+https://github.com/rust-lang/crates.io-index"
267
+ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
268
+
269
+ [[package]]
270
+ name = "vcpkg"
271
+ version = "0.2.15"
272
+ source = "registry+https://github.com/rust-lang/crates.io-index"
273
+ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
274
+
275
+ [[package]]
276
+ name = "version_check"
277
+ version = "0.9.5"
278
+ source = "registry+https://github.com/rust-lang/crates.io-index"
279
+ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
280
+
281
+ [[package]]
282
+ name = "zerocopy"
283
+ version = "0.8.54"
284
+ source = "registry+https://github.com/rust-lang/crates.io-index"
285
+ checksum = "b7cbbc0a705a0fd05cc3676525980d2bf5a9bc4adac6d6475209a7887cf59d19"
286
+ dependencies = [
287
+ "zerocopy-derive",
288
+ ]
289
+
290
+ [[package]]
291
+ name = "zerocopy-derive"
292
+ version = "0.8.54"
293
+ source = "registry+https://github.com/rust-lang/crates.io-index"
294
+ checksum = "e2e817b7b52d0c7358d3246da9d69935ebb18116b2b102b4230dac079b4862f5"
295
+ dependencies = [
296
+ "proc-macro2",
297
+ "quote",
298
+ "syn",
299
+ ]
@@ -0,0 +1,15 @@
1
+ [package]
2
+ name = "localqueue"
3
+ version = "1.0.0"
4
+ edition = "2021"
5
+ rust-version = "1.83"
6
+ readme = "README.md"
7
+
8
+ [lib]
9
+ name = "localqueue"
10
+ crate-type = ["cdylib"]
11
+
12
+ [dependencies]
13
+ pyo3 = { version = "0.29", features = ["extension-module"] }
14
+ rusqlite = { version = "0.32", features = ["bundled"] }
15
+ thiserror = "1.0"