The NoSQL in-memory database with class-based functionality and detailed operation history tracking.
Project description
delta_trace_db_py
Python implementation of DeltaTraceDB.
Usage
Please refer to the Dart version.
There are some differences,
such as arguments being snake case by default and an underscore being added after the variable name
if there is a namespace conflict with a standard function, but the usage is the same.
Speed
This package is an in-memory database, so it is generally fast.
Currently, there is no mechanism to speed it up, but it works almost the same as a for loop in a program,
so there is usually no problem with around 100,000 records.
I recommend that you test it in an actual environment using speed_test.dart in the test folder.
However, since it consumes RAM capacity according to the amount of data,
if you need an extremely large database, consider using a general database.
For reference, below are the results of a speed test (test/speed_test.dart) run on a slightly
older PC equipped with a Ryzen 3600 CPU.
The test conditions were chosen to take a sufficiently long time, but I think it will rarely
cause
any problems in practical use.
Please note that speeds also depend on the amount of data, so if you have a lot of large data, it will be slower.
tests/test_speed.py speed test for 100000 records
start add
end add: 339 ms
start getAll (with object convert)
end getAll: 659 ms
returnsLength: 100000
start save (with json string convert)
end save: 467 ms
start load (with json string convert)
end load: 557 ms
start search (with object convert)
end search: 818 ms
returnsLength: 100000
start search paging, half limit pre search (with object convert)
end search paging: 379 ms
returnsLength: 50000
start update at half index and last index object
end update: 96 ms
start updateOne of half index object
end updateOne: 31 ms
start conformToTemplate
end conformToTemplate: 79 ms
start delete half object (with object convert)
end delete: 562 ms
returnsLength: 50000
start deleteOne for last object (with object convert)
end deleteOne: 22 ms
returnsLength: 1
Future plans
It is possible to speed up the database, but this is a low priority, so I think that improving usability and creating peripheral tools will take priority.
Support
There is essentially no support at this time, but bugs will likely be fixed.
If you find any issues, please open an issue on Github.
About version control
The C part will be changed at the time of version upgrade.
However, versions less than 1.0.0 may change the file structure regardless of the following rules.
- Changes such as adding variables, structure change that cause problems when reading previous
files.
- C.X.X
- Adding methods, etc.
- X.C.X
- Minor changes and bug fixes.
- X.X.C
License
This software is released under the Apache-2.0 License, see LICENSE file.
Copyright 2025 Masahide Mori
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright notice
The “Dart” name and “Flutter” name are trademarks of Google LLC.
*The developer of this package is not Google LLC.
Trademarks
The "Python" name is a trademark of the Python Software Foundation. *The developer of this package is not affiliated with the Python Software Foundation.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file delta_trace_db-0.0.18.post1.tar.gz.
File metadata
- Download URL: delta_trace_db-0.0.18.post1.tar.gz
- Upload date:
- Size: 27.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
974873090c1f710d38a1763a1e807a8647e96a3bee81e6cd925c35900955effb
|
|
| MD5 |
2b17ab403272bb4bb8f3a5b43609813a
|
|
| BLAKE2b-256 |
9d083d1944909941db396c609726d5ba1cdbc64d9ddadf3ac834d2473ba532ea
|
File details
Details for the file delta_trace_db-0.0.18.post1-py3-none-any.whl.
File metadata
- Download URL: delta_trace_db-0.0.18.post1-py3-none-any.whl
- Upload date:
- Size: 31.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e867a37e3fdc75d3050f50aedbd2d8bcfd673230e447237f5898738892ed756
|
|
| MD5 |
8b71ab3cfdbaf3e6b19f8f795ac2c3a7
|
|
| BLAKE2b-256 |
672c8c1519162e0841cd6af7ec087db5d143ce97e6e2748c9c998e8e0ba4c499
|