122 Commits

Author SHA1 Message Date
Giuliano Mega
92af582d97
fix: close pending iterators before closing LevelDB store (#83)
This adds tracking of open iterators to leveldbds so that when one attempts to close it, iterators are disposed of first. It also adds automatic disposal if iterators are completely consumed.

fixes #82
2026-02-06 16:24:11 -03:00
Arnaud
a7ee4b170a Use short syntax with nim-results 2025-12-11 08:38:39 -03:00
Arnaud
950990720a Use await instead of fut.read 2025-12-11 08:38:39 -03:00
Arnaud
d583647c5b Propagate CancelledError 2025-12-11 08:38:39 -03:00
Arnaud
92f9533c7d Add more raises in async pragma 2025-12-11 08:38:39 -03:00
Arnaud
9586f95ccd Do not propagate AsyncLockError 2025-12-11 08:38:39 -03:00
Arnaud
42e4f530bf Add errors to raises async pragam 2025-12-11 08:38:39 -03:00
Arnaud
13c0a0cdb1 Define raises for async pragma 2025-12-11 08:38:39 -03:00
Chrysostomos Nanakos
ea917be824
chore: update stew upper bound version (#80)
Bump package version to 0.2.1.

Signed-off-by: Chrysostomos Nanakos <chris@include.gr>
0.2.1
2025-12-11 10:12:45 +01:00
Arnaud
39000fd4fc
Update to nim 2 x (#75)
* Add nimbledeps to be sure that dependencies are isolated

* Update dependencies to specific commit hashes

Signed-off-by: Arnaud <arnaud@status.im>

* Add gcsafe pragma

Signed-off-by: Arnaud <arnaud@status.im>

* Apply method name changes

Signed-off-by: Arnaud <arnaud@status.im>

* Catch exceptions

Signed-off-by: Arnaud <arnaud@status.im>

* Cast to nil value because nil cannot be applied directly to distinct pointer

Signed-off-by: Arnaud <arnaud@status.im>

* Update nim-results to version 0.5.1

Signed-off-by: Arnaud <arnaud@status.im>

* Add Nim 2.0.12 to matrix

* Increment the version

* Update the leveldb dependency

* Add versions and commit to dependencies

* Introduce nimble.lock

Signed-off-by: Arnaud <arnaud@status.im>

* Remove .lock and file and direct dependency to nim-results

* Update to 2.0.14

* updates nim-leveldbstatic

* sets leveldb to v0.2.0

* fix dep versions

* remove except Exception, no longer needed

* fix dep versions

---------

Signed-off-by: Arnaud <arnaud@status.im>
Co-authored-by: Ben <thatbenbierens@gmail.com>
Co-authored-by: Eric <5089238+emizzle@users.noreply.github.com>
0.2.0
2025-02-13 20:26:58 +01:00
Ben Bierens
b3d4bd40fc
sets version for chronos. bumps nim-datastore to 0.1.1 (#73) 0.1.1 2024-08-28 08:55:23 +02:00
Ben Bierens
5feef6ff4b
updates nimble file (#72) 0.1.0 2024-08-19 15:02:50 +02:00
Ben Bierens
1d02bb492f
Simplifies tests.yml (#71)
* simplifies tests.yml

* fixes workflow name

* checkout v4
2024-08-19 14:42:57 +02:00
Tomasz Bekas
479353df00
Rename err to error to avoid naming conflict (#68) 2024-08-19 14:45:54 +03:00
Ben Bierens
90a9053437
Support GCC-14 (#69)
* bump chronos

* bumps asynctest

* fixes asynctest imports

* bumps leveldbstatic

* bumps leveldb again

* pins asynctest version
2024-08-19 11:02:18 +03:00
Ben Bierens
f4989fcce5
LevelDB review (#65)
* Replaces stew-results with results package

* Applies leveldb batch-put

* links in dispose call to leveldb wrapper

* Handles trailing wildcards in leveldb query.

* Fixes tests for leveldb typed-ds.

* Adjusts exception handling in leveldbds to match what can be raised by leveldb iterator callbacks.

* Pulls in leveldbstatic 0.1.4

* Replaces replace with substring in leveldbds query

* Adds cmake to windows CI install
2024-05-23 09:31:49 -07:00
Tomasz Bekas
d95074ab91
Add some exports to typedds.nim (#66) 2024-05-22 09:50:27 -07:00
Dmitriy Ryajov
962c08c101
cleanup results import and some warnings (#64)
* cleanup results import and some warnings

* add some more push raises
2024-05-15 10:37:01 -07:00
Ben Bierens
0ee88a2a9b
Adds LevelDB Datastore (#63)
* set up leveldb-datastore

* Adds test for leveldb

* pulls in nim-leveldb by url and hash

* Fixes basic tests for leveldbds

* Implements query iterator

* Fixes include path for defaultImpl

* Review comments by Tomasz
2024-05-14 11:05:58 +02:00
Tomasz Bekas
7b3fdb854c
Merge pull request #62 from codex-storage/typedds
TypedDatastore implementation
2024-05-14 10:33:00 +02:00
Tomasz Bekas
aead27eeba
Merge pull request #61 from codex-storage/fix-missing-rollbacks
Fix missing rollbacks
2024-05-10 11:17:38 +02:00
Tomasz Bekas
38e2fea1b3
Fix docs 2024-05-09 13:34:45 +02:00
Tomasz Bekas
6136eb608d
Addressing review comments by Dmitriy 2024-05-08 19:23:31 +02:00
Tomasz Bekas
50b480270f
TypedDatastore implementation 2024-05-08 14:14:47 +02:00
Tomasz Bekas
8e8d071ac7
Fix missing rollbacks 2024-02-27 18:43:24 +01:00
Dmitriy Ryajov
d02f2e7380
Proper dispose (#60)
* cleanup error handling

* properly dipose statements and connections

* db should be var now

* autodispose db
2024-01-15 20:00:42 -08:00
Tomasz Bekas
8f99eb06bd
Merge pull request #58 from codex-storage/concurrent-datastore
Concurrent datastore interface & sqlite implementation
2024-01-12 11:01:09 +01:00
Tomasz Bekas
3c4daf4198 Fix review comments 2024-01-10 16:54:14 +01:00
Tomasz Bekas
0d1ca4b2cd
Bump nim to 1.6.16 2023-12-20 15:21:26 +01:00
Tomasz Bekas
b692737eed Remove ConcurrentDatastore type 2023-12-20 10:55:59 +01:00
Tomasz Bekas
a6ab178092 Fix broken tests 2023-12-20 10:16:28 +01:00
Tomasz Bekas
e2e31e07b3
Remove fail() 2023-12-20 09:09:06 +01:00
Tomasz Bekas
673778697f Replace require with check 2023-12-20 08:50:15 +01:00
gmega
795e1a3e3a pin chronos to the lastest commit (as of today) 2023-12-20 08:50:15 +01:00
gmega
cc2c58a8bd explicitly change chronos to pick up from head 2023-12-20 08:50:15 +01:00
gmega
18d0833141 explicitly annotate iterator exception effects so it does not default to raises: [Exception] 2023-12-20 08:50:15 +01:00
Tomasz Bekas
3d901cb658
Move modify methods to the Datastore interface 2023-12-19 15:49:44 +01:00
gmega
cadf38db57 pin chronos to the lastest commit (as of today) 2023-12-15 19:22:57 -03:00
gmega
077ab3d077 explicitly change chronos to pick up from head 2023-12-15 19:22:57 -03:00
gmega
5d1755081c explicitly annotate iterator exception effects so it does not default to raises: [Exception] 2023-12-15 19:22:57 -03:00
Tomasz Bekas
a62c91bb6b Return err from modify fn 2023-12-11 12:29:38 +01:00
Tomasz Bekas
f41bd9528e
Remove methods taking non-async functions 2023-12-04 13:39:43 +01:00
Tomasz Bekas
3d38850afc
Update docs 2023-11-27 17:09:49 +01:00
Tomasz Bekas
4c5ced6633 ModifyGet operations 2023-11-21 19:51:23 +01:00
Tomasz Bekas
3770d0d1a0
Remove semicolon 2023-11-21 13:31:18 +01:00
Tomasz Bekas
52bbe9d429
Concurrent datastore interface & sqlite implementation 2023-11-15 14:28:20 +01:00
Dmitriy Ryajov
78a15b1123
Fix conflicting unit test (#45)
* setup the path correctly

* fix conflicting testing symbols

* don't test for nim 1.2

---------

Co-authored-by: Jaremy Creechley <creechley@gmail.com>
2023-09-11 13:21:01 -07:00
Ben Bierens
0cde8aeb67
enables stylecheck (#40) 2023-03-09 10:24:44 +01:00
Dmitriy Ryajov
44c198b96a
rework contains to return a bool (#39) 2022-12-02 16:25:44 -06:00
Dmitriy Ryajov
9d49c8016e
Several fixes and missing features (#38)
* shorten lines

* only return data when `query.value == true`

* test `query.value = false`

* close mounted ds

* allow passing dispose to query iter constructor

* fix fs querying

* use currentSourcePath

* remove `dsobj` extensions from directories

* don't return error on missing key delete

* return `DatastoreKeyNotFound` on empty `get`

* return `DatastoreKeyNotFound` on missing sql key
2022-11-22 15:23:23 -06:00