v0.1.0
What's Changed
- [ci] Initialize Rust project #1 by @agnesoft in #2
- [ci] Add PR template #3 by @michaelvlach in #4
- [ci] Add pull request build #5 by @michaelvlach in #6
- [ci] Add PR title check #7 by @michaelvlach in #8
- [ci] Limit PR build to Rust code changes #9 by @michaelvlach in #10
- [ci] Add Rust code analysis #11 by @michaelvlach in #12
- [ci] Add code coverage as PR check #13 by @michaelvlach in #14
- [ci] Fix unmergable PRs with non-code changes #17 by @michaelvlach in #18
- [ci] Add codecov on main #15 by @michaelvlach in #16
- [ci] Fix codecov upload #19 by @michaelvlach in #20
- [ci] Add release dry run #21 by @michaelvlach in #22
- [ci] Add badges to readme #23 by @michaelvlach in #24
- [ci] Add component db to components #27 by @michaelvlach in #28
- [db] Add Db struct #25 by @michaelvlach in #26
- [query] Add Query struct #29 by @michaelvlach in #30
- [query] Add QueryResult struct #31 by @michaelvlach in #32
- [db] Add Db::exec() function #33 by @michaelvlach in #34
- [query] Add Transaction #35 by @michaelvlach in #36
- [db] Create Transaction from Db #37 by @michaelvlach in #38
- [query] Add exec() to Transaction #39 by @michaelvlach in #40
- [query] Add nested transactions #41 by @michaelvlach in #42
- [query] Add QueryError #44 by @michaelvlach in #45
- [query] Add commit() to transaction #43 by @michaelvlach in #46
- [query] Return Result<> from exec #47 by @michaelvlach in #48
- [query] Add rollback() to Transaction #49 by @michaelvlach in #50
- [storage] Add FileStorage #51 by @michaelvlach in #52
- [tests] Add TestFile that auto-deletes #54 by @michaelvlach in #55
- [tests] Add TestFile::file_name() #56 by @michaelvlach in #57
- [storage] Construct FileStorage with filename and create a file #53 by @michaelvlach in #58
- [storage] Add FileIndex #59 by @michaelvlach in #60
- [storage] Add index to position mapping to FileIndex #61 by @michaelvlach in #62
- [storage] Add removal of index from FileIndex #63 by @michaelvlach in #64
- [storage] Add free index to FileIndex #65 by @michaelvlach in #66
- [storage] Add insert to FileIndex #67 by @michaelvlach in #68
- [storage] Add FileRecord #69 by @michaelvlach in #70
- [storage] Use FileRecord in FileIndex #71 by @michaelvlach in #72
- [storage] Add From to FileRecords #73 by @michaelvlach in #74
- [storage] Add Serialize trait #76 by @michaelvlach in #77
- [storage] Add insert() to FileStorage #75 by @michaelvlach in #78
- [storage] Add value() to FileStorage #79 by @michaelvlach in #80
- [storage] Add value_at() to FileStorage #81 by @michaelvlach in #82
- [storage] Add FileWrapper to handle errors #84 by @michaelvlach in #85
- [storage] Add read() to FileWrapper #86 by @michaelvlach in #87
- [storage] Add current_pos() to FileWrapper #88 by @michaelvlach in #89
- [storage] Add write() to FileWrapper #90 by @michaelvlach in #91
- [storage] Add seek to FileWrapper #92 by @michaelvlach in #93
- [storage] Track size in FileWrapper #95 by @michaelvlach in #96
- [storage] Use FileWrapper in FileStorage #94 by @michaelvlach in #97
- [storage] Restore FileRecords from existing file #83 by @michaelvlach in #98
- [db] Add error type #100 by @michaelvlach in #101
- [tests] Add BadFile #102 by @michaelvlach in #103
- [tests] Add more read_exact and write_all to BadFile #104 by @michaelvlach in #105
- [tests] Add list of return values to BadFile #106 by @michaelvlach in #107
- [db] Convert io error to DbError #108 by @michaelvlach in #109
- [storage] Handle read over record size #99 by @michaelvlach in #110
- [tests] Remove BadFile #111 by @michaelvlach in #112
- [storage] Add get_mut() to FileRecords #114 by @michaelvlach in #115
- [storage] Add insert with offset to FileStorage #113 by @michaelvlach in #116
- [storage] Add value_size() to FileStorage #117 by @michaelvlach in #118
- [storage] Stop using 0 as valid index #120 by @michaelvlach in #121
- [storage] Add remove() to FileStorage #122 by @michaelvlach in #123
- [storage] Use negative index to mark removed records #127 by @michaelvlach in #129
- [storage] Use Vec in FileRecords #126 by @michaelvlach in #128
- [storage] Remove separate free list from FileRecords #130 by @michaelvlach in #131
- [storage] Remove index from FileRecord #132 by @michaelvlach in #133
- [storage] Make FileRecords iterable by position #125 by @michaelvlach in #134
- [storage] Add shrink_to_fit() to FileStorage #124 by @michaelvlach in #135
- [storage] Add write ahead log struct #119 by @michaelvlach in #136
- [storage] Add write ahead log record #137 by @michaelvlach in #138
- [storage] Add write ahead log insert() #139 by @michaelvlach in #141
- [storage] Add records() to WriteAheadLog #140 by @michaelvlach in #142
- [storage] Add clear() to WriteAheadLog #143 by @michaelvlach in #144
- [storage] Improve coverage #146 by @michaelvlach in #147
- [tests] Track write ahead log file in TestFile #148 by @michaelvlach in #149
- [storage] Add transactions to FileStorage #145 by @michaelvlach in #150
- [storage] Add Storage trait #151 by @michaelvlach in #152
- [storage] Add StorageVec #153 by @michaelvlach in #154
- [storage] Add resize_value() to Storage #156 by @michaelvlach in #157
- [storage] Fix values not invalidated after move #158 by @michaelvlach in #159
- [storage] Fix move to end not resizing storage #160 by @michaelvlach in #161
- [storage] Add push() to StorageVec #155 by @michaelvlach in #162
- [storage] Do not move values at end #163 by @michaelvlach in #164
- [storage] Add indexed access to StorageVec #165 by @michaelvlach in #166
- [storage] Add mutable indexed access to StorageVec #167 by @michaelvlach in #168
- [storage] Make StorageVec iterable #169 by @michaelvlach in #170
- [storage] Rename index to file_index in StorageVec #171 by @michaelvlach in #172
- [storage] Rename file_index to storage_index in StorageVec #173 by @michaelvlach in #174
- [storage] Add conversion to Vec to StorageVec #175 by @michaelvlach in #176
- [storage] Add move_at to Storage #177 by @michaelvlach in #178
- [db] Implement Error for DbError #179 by @michaelvlach in #180
- [storage] Add remove() to StorageVec #181 by @michaelvlach in #182
- [storage] Add insertion of slices to Storage #184 by @michaelvlach in #185
- [storage] Add resize() to StorageVec #183 by @michaelvlach in #186
- [storage] Add reserve() to StorageVec #187 by @michaelvlach in #189
- [storage] Add shrink_to_fit() to StorageVec #188 by @michaelvlach in #190
- [storage] Add StorageHashMap #191 by @michaelvlach in #192
- [storage] Add try_from storage and index to StorageVec #193 by @michaelvlach in #194
- [storage] Add StableHash trait #196 by @michaelvlach in #197
- [storage] Add StorageHashMapKeyValue struct #198 by @michaelvlach in #199
- [storage] Add empty indicator to StorageHashMapKeyValue #200 by @michaelvlach in #201
- [storage] Add serialized_size() to StorageHashMapKeyValue #203 by @michaelvlach in #204
- [storage] Add StorageHashMapData struct #202 by @michaelvlach in #205
- [storage] Add serialized_size to Serialize trait #206 by @michaelvlach in #207
- [storage] Add insert and value to StorageHashMap #195 by @michaelvlach in #208
- [storage] Add remove() to StorageHashMap #209 by @michaelvlach in #210
- [storage] Insert duplicates should overwrite values in StorageHashMap #211 by @michaelvlach in #212
- [storage] Add reserve() to StorageHashMap #213 by @michaelvlach in #214
- [storage] Fix size of StorageHashMap incorrectly updates #215 by @michaelvlach in #216
- [storage] Add to_hash_map() to StorageHashMap #218 by @michaelvlach in #219
- [storage] Add try_from storage and index to StorageHashMap #217 by @michaelvlach in #220
- [db] Add conversion from FromUtf8Error to DbError #223 by @michaelvlach in #224
- [storage] Add serialization for String #222 by @michaelvlach in #225
- [tests] Use autogenerated name in TestFile #221 by @michaelvlach in #226
- [graph] Add Graph struct #227 by @michaelvlach in #228
- [graph] Add GraphElement struct #229 by @michaelvlach in #230
- [graph] Add GraphNode struct #231 by @michaelvlach in #232
- [graph] Add GraphEdge struct #233 by @michaelvlach in #234
- [graph] Add insert_node() to Graph #235 by @michaelvlach in #236
- [graph] Add insert_edge() to Graph #237 by @michaelvlach in #238
- [graph] Add node iteration #240 by @michaelvlach in #241
- [graph] Add node from index #243 by @michaelvlach in #244
- [graph] Add edge from index #245 by @michaelvlach in #246
- [graph] Add edge iteration #242 by @michaelvlach in #247
- [graph] Add remove_edge() to Graph #239 by @michaelvlach in #248
- [graph] Add remove_node() to Graph #249 by @michaelvlach in #250
- [graph] Add node_count() to Graph #251 by @michaelvlach in #252
- [storage] Fix Storage visibility #253 by @michaelvlach in #254
- [storage] Fix WAL file name #255 by @michaelvlach in #256
- [graph] Add StorageGraph #257 by @michaelvlach in #258
- [storage] Use transactions in Storage containers #260 by @michaelvlach in #261
- [ci] Remove region coverage check #262 by @michaelvlach in #263
- [graph] Add transactions to Graph implementation #259 by @michaelvlach in #264
- [storage] Add HashMultiMap #267 by @michaelvlach in #268
- [storage] Add StorageHashMultiMap #266 by @michaelvlach in #270
- [storage] Add StorageVectorIterator #269 by @michaelvlach in #271
- [graph] Add Dictionary #265 by @michaelvlach in #273
- [graph] Fix too slow growth #272 by @michaelvlach in #274
- [graph] Add StorageDictionary #275 by @michaelvlach in #276
- [ci] Use workspaces #277 by @michaelvlach in #278
- [ci] Fix codecov coverage not respecting workspace #279 by @michaelvlach in #280
- [ci] Remove build release workflow #281 by @michaelvlach in #282
- [tests] Move test_utilities to crate #283 by @michaelvlach in #284
- [storage] Move serialize to crate #285 by @michaelvlach in #286
- [storage] Move Storage into crate #287 by @michaelvlach in #288
- [storage] Rename FileStorage to StorageFile #289 by @michaelvlach in #291
- [storage] Add StorageIndex #290 by @michaelvlach in #292
- [storage] Add StorageIndex serialization #293 by @michaelvlach in #294
- [storage] Add StorageRecord serialization #295 by @michaelvlach in #296
- [storage] Move StorageVec to crate #297 by @michaelvlach in #298
- [storage] Move HashMap to crate #299 by @michaelvlach in #300
- [storage] Move Dictionary to crate #301 by @michaelvlach in #302
- [storage] Add DictionaryIndex #303 by @michaelvlach in #304
- [ci] Remove obsolete badge from readme #306 by @michaelvlach in #307
- [graph] Move Graph to crate #305 by @michaelvlach in #308
- [graph] Add GraphIndex #309 by @michaelvlach in #311
- [graph] Add GraphSearch crate #310 by @michaelvlach in #312
- [graph] Add SearchControl to GraphSearch #313 by @michaelvlach in #314
- [graph] Add SearchData to GraphSearch #316 by @michaelvlach in #317
- [graph] Add SearchHandler trait to GraphSearch #315 by @michaelvlach in #318
- [storage] Add BitSet #319 by @michaelvlach in #320
- [graph] Add BreadthFirstSearch to GraphSearch #321 by @michaelvlach in #322
- [graph] Add DepthFirstSearch to GraphSearch #323 by @michaelvlach in #325
- [graph] Add PathSearch to GraphSearch #324 by @michaelvlach in #327
- [graph] Add reverse search to GraphSearch #326 by @michaelvlach in #328
- [commands] Add Commands enum #329 by @michaelvlach in #330
- [commands] Add CommandStack #331 by @michaelvlach in #332
- [ci] Merge all crates into one #333 by @michaelvlach in #334
- [ci] Add publish dry run #335 by @michaelvlach in #336
- [ci] Add readme build badge #337 by @michaelvlach in #338
- [db] Add DbValue #339 by @michaelvlach in #340
- [db] Add DbKey #341 by @michaelvlach in #342
- [db] Implement traits for DbValue #343 by @michaelvlach in #344
- [db] Implement StableHash for DbValue #345 by @michaelvlach in #346
- [db] Implement Serialization for DbValue #347 by @michaelvlach in #348
- [db] Support serialization of dynamically sized types in Vec #350 by @michaelvlach in #351
- [collections] Add support for dynamic values in StorageVec #352 by @michaelvlach in #353
- [db] Add small value optimization #349 by @michaelvlach in #355
- [storage] Add new serialization traits #356 by @michaelvlach in #357
- [storage] Add new storage traits #358 by @michaelvlach in #359
- [db] Add DbIndex #361 by @michaelvlach in #362
- [storage] Merge PartialSerialize and Serialize #363 by @michaelvlach in #364
- [storage] Implement new storage traits for FileStorage #360 by @michaelvlach in #365
- [collections] Use FileStorage in VecStorage #354 by @michaelvlach in #366
- [storage] Restore StorageIndex instead of DbIndex #367 by @michaelvlach in #368
- [graph] Use VecStorage in graph #369 by @michaelvlach in #370
- [storage] Add StorageValue trait #372 by @michaelvlach in #373
- [collections] Use StorageValue in VecStorage #374 by @michaelvlach in #375
- [db] Split static_serialized_size() to new trait #376 by @michaelvlach in #377
- [collections] Add swap() to VecStorage #378 by @michaelvlach in #379
- [collections] Use VecStorage in Map #371 by @michaelvlach in #380
- [collections] Add MultiMap #381 by @michaelvlach in #382
- [collections] Use new collections in Dictionary #383 by @michaelvlach in #384
- [db] Cleanup unused code #385 by @michaelvlach in #386
- [query] Add insert query #387 by @michaelvlach in #388
- [query] Add select query #389 by @michaelvlach in #390
- [query] Add remove query #391 by @michaelvlach in #392
- [query] Add search query #393 by @michaelvlach in #394
- [query] Add condition #395 by @michaelvlach in #396
- [query] Add insert node query builder #397 by @michaelvlach in #398
- [query] Add insert nodes query builder #399 by @michaelvlach in #400
- [query] Add values_id to insert nodes #401 by @michaelvlach in #402
- [query] Add values_query #403 by @michaelvlach in #404
- [query] Add insert edge #405 by @michaelvlach in #406
- [query] Add insert edges #407 by @michaelvlach in #408
- [query] Add insert values #409 by @michaelvlach in #410
- [query] Insert alias #411 by @michaelvlach in #412
- [query] Remove alias #413 by @michaelvlach in #414
- [query] Add remove values #415 by @michaelvlach in #416
- [query] Add remove ids query #417 by @michaelvlach in #418
- [query] Add select aliases query #419 by @michaelvlach in #420
- [query] Add search query #421 by @michaelvlach in #422
- [query] Add select count #423 by @michaelvlach in #424
- [query] Add select key count #425 by @michaelvlach in #426
- [query] Add select keys #427 by @michaelvlach in #428
- [query] Add select values #429 by @michaelvlach in #430
- [query] Rename select ids to search #431 by @michaelvlach in #432
- [query] Add conditions #433 by @michaelvlach in #434
- [db] Implement insert node #435 by @michaelvlach in #436
- [collections] Add indexed map #438 by @michaelvlach in #439
- [collections] Add storage indexed map #440 by @michaelvlach in #441
- [ci] Add formatting check #442 by @michaelvlach in #443
- [db] Add external ids #437 by @michaelvlach in #445
- [db] Add insert edge #444 by @michaelvlach in #446
- [db] Remove nodes and edges #447 by @michaelvlach in #448
- [db] Remove alias #449 by @michaelvlach in #450
- [db] Select by id #454 by @michaelvlach in #455
- [db] Implement transaction #451 by @michaelvlach in #456
- [db] Disallow empty alias #452 by @michaelvlach in #457
- [db] Skip removal of ids and aliases that do not exist #453 by @michaelvlach in #459
- [db] Remove alias when removing node #458 by @michaelvlach in #460
- [query] Consolidate alias query #463 by @michaelvlach in #464
- [query] Simplify insert alias query usage #465 by @michaelvlach in #466
- [query] Consolidate insert alias query builder #467 by @michaelvlach in #468
- [collections] Consolidate Dictionary #469 by @michaelvlach in #470
- [query] Consolidate insert node query #471 by @michaelvlach in #472
- [db] Consolidate insert index command #473 by @michaelvlach in #475
- [query] Consolidate insert edge #474 by @michaelvlach in #476
- [query] Consolidate remove alias #477 by @michaelvlach in #478
- [query] Consolidate remove index #479 by @michaelvlach in #480
- [db] Consolidate remove node #481 by @michaelvlach in #482
- [db] Consolidate remove edge #483 by @michaelvlach in #484
- [db] Switch commands to redo/undo #485 by @michaelvlach in #486
- [db] Make insert node atomic #487 by @michaelvlach in #489
- [ci] Add vscode tasks #488 by @michaelvlach in #490
- [db] Make insert edge atomic #491 by @michaelvlach in #492
- [db] Simplify insert alias #493 by @michaelvlach in #494
- [db] Make remove commands atomic #495 by @michaelvlach in #496
- [graph] Reinserted node cannot be used #498 by @michaelvlach in #499
- [db] Handle edge in remove node #497 by @michaelvlach in #500
- [tests] Create db testing framework #501 by @michaelvlach in #502
- [db] Add db value index #503 by @michaelvlach in #504
- [graph] Add GraphIndex new #505 by @michaelvlach in #506
- [db] Add db key value index #507 by @michaelvlach in #508
- [ci] Use --codecov instead of --lcov #510 by @michaelvlach in #511
- [ci] Use --show-missed-lines instead of --fail-uncovered-lines #512 by @michaelvlach in #513
- [ci] Revert to lcov style coverage #514 by @michaelvlach in #515
- [db] Implement insert values query #509 by @michaelvlach in #516
- [storage] Add transaction identity #517 by @michaelvlach in #518
- [db] Include caused by DbError to QuerryError #519 by @michaelvlach in #520
- [db] Use implementation of commands in query structs #521 by @michaelvlach in #522
- [db] Merge command_mut into queries #523 by @michaelvlach in #524
- [db] Add insert node values #461 by @michaelvlach in #525
- [db] Remove node with values #526 by @michaelvlach in #527
- [db] Insert edge values #528 by @michaelvlach in #529
- [db] Remove values by id #530 by @michaelvlach in #531
- [db] Implement remove values #532 by @michaelvlach in #533
- [db] Add persistent store #462 by @michaelvlach in #534
- [collections] Add db vec #536 by @michaelvlach in #537
- [collections] Change StorageValue to VecValue #538 by @michaelvlach in #539
- [storage] Merge StorageIndex into Storage #540 by @michaelvlach in #541
- [graph] Create db graph #535 by @michaelvlach in #542
- [db] Use GraphIndex as DbId #543 by @michaelvlach in #544
- [collections] Consolidate indexedmap #545 by @michaelvlach in #548
- [collections] Consolidate multimap #546 by @michaelvlach in #549
- [db] Remove dictionary #547 by @michaelvlach in #550
- [collections] Review type constraints #551 by @michaelvlach in #553
- [query] Simplify queries #552 by @michaelvlach in #554
- [query] Implement select aliases #559 by @michaelvlach in #560
- [query] Implement select all aliases #555 by @michaelvlach in #561
- [query] Implement select keys #558 by @michaelvlach in #562
- [query] Implement select key count #556 by @michaelvlach in #563
- [query] Implement select values #557 by @michaelvlach in #564
- [query] Implement search query #565 by @michaelvlach in #566
- [query] Implement search limit #567 by @michaelvlach in #572
- [query] Implement offset #568 by @michaelvlach in #573
- [query] Implement search variants of select queries #574 by @michaelvlach in #576
- [query] Add search to insert and remove queries #577 by @michaelvlach in #578
- [db] Add ids() to QueryResult #575 by @michaelvlach in #579
- [query] Implement search ordering #569 by @michaelvlach in #580
- [db] Add optimize on db drop #571 by @michaelvlach in #582
- [graph] Add edge count to #585 by @michaelvlach in #586
- [graph] Allow search to return result #584 by @michaelvlach in #587
- [collections] Add find to MultiMap #583 by @michaelvlach in #588
- [query] Implement conditions #581 by @michaelvlach in #589
- [ci] publish package to cargo #590 by @michaelvlach in #591
- [ci] Fix release workflow #592 by @michaelvlach in #593
- [ci] Fix checkout action version #594 by @michaelvlach in #595
- [ci] Fix cargo search call #596 by @michaelvlach in #597
- [ci] Fix git push tag action #598 by @michaelvlach in #599
- [ci] Add missing -m option to git tag #600 by @michaelvlach in #601
New Contributors
- @agnesoft made their first contribution in #2
- @michaelvlach made their first contribution in #4
Full Changelog: https://github.com/agnesoft/agdb/commits/v0.1.0