Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: atrium-repo #272

Open
wants to merge 81 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
28b4f49
chore: Create empty `atrium-repo` library crate
str4d May 7, 2024
2c7c7fe
repo: Logic for parsing and traversing MST nodes
str4d May 9, 2024
6c912e9
repo: Indexed reader for CAR files
str4d May 11, 2024
ef084e2
repo: APIs to fetch keys, collections, and records from a repository
str4d May 11, 2024
fab9e0d
Significant refactor; implement basic MST update logic
DrChat Dec 21, 2024
69abe04
Full MST implementation
DrChat Dec 22, 2024
6e8ef2a
More refactoring :)
DrChat Dec 23, 2024
9122742
Use `traverse` for `split_subtree`
DrChat Dec 25, 2024
cda0fec
Fix a few lingering bugs in node deletion
DrChat Dec 26, 2024
c28f047
Update firehose example
DrChat Dec 26, 2024
d42955b
More validation in mst dual-layer deletion test
DrChat Dec 27, 2024
d5d0f03
`Tree::get_path`
DrChat Dec 27, 2024
bcef9de
Only verify SHA2_256 CAR blocks
DrChat Dec 27, 2024
a64bbf5
Documentation pass
DrChat Dec 27, 2024
73ba0f8
MST: Handle edge case where we need to insert new tree entry at leftm…
DrChat Dec 27, 2024
7c8e181
Fix repo tests
DrChat Dec 27, 2024
66657e4
More docs
DrChat Dec 28, 2024
5c863fe
Simplify `Tree::keys`
DrChat Dec 30, 2024
6d0ffc8
Return keys from `Tree::keys` in lexicographic order
DrChat Dec 30, 2024
be02786
Create a high-level `Commit` helper struct
DrChat Dec 30, 2024
8bd84a8
Add new `Tree::entries` function to return key/value tuples
DrChat Dec 30, 2024
64b5282
Add documentation clarifying that tree iteration does not work agains…
DrChat Dec 30, 2024
9396c22
Whoops :)
DrChat Dec 30, 2024
8b5bf82
Expose hashing algorithm to `AsyncBlockStoreWrite::write_block`
DrChat Dec 30, 2024
50c9c7c
Forgot to commit this import :(
DrChat Dec 30, 2024
0e46424
Gracefully handle multi-writes to `CarStore`
DrChat Dec 30, 2024
b807361
Rename `Repository::new` to `open`
DrChat Dec 31, 2024
4ccddbf
Outline `algos::compute_depth`
DrChat Jan 1, 2025
3aca675
Correct the docs for `Node::find_ge`
DrChat Jan 1, 2025
10c9519
Panic if we attempt to serialize a `Node` with two adjacent tree entries
DrChat Jan 1, 2025
139e461
Misc. improvements
DrChat Jan 3, 2025
76d667d
More `Tree` documentation
DrChat Jan 3, 2025
b8adafe
Remove `AsyncBlockStoreWrite::delete_block`
DrChat Jan 5, 2025
e762432
Fix a bug when writing out a new CAR block
DrChat Jan 5, 2025
382c8d0
API updates; Implement `CarStore::create`
DrChat Jan 12, 2025
6aaabe2
Update firehose example to remove CID compat
DrChat Jan 12, 2025
40aae39
Move all algorithms to `algos` module
DrChat Jan 18, 2025
f2a4213
Fix warnings
DrChat Jan 18, 2025
739ad6f
clippy + fmt
DrChat Jan 19, 2025
97f6f98
Full CRUD functionality for `Repository`
DrChat Jan 28, 2025
d873819
Add a basic differencing blockstore layer
DrChat Jan 31, 2025
adde49e
Remove `async-trait` dep
DrChat Feb 1, 2025
f0ab468
Add my name to `atrium-repo` authors
DrChat Feb 1, 2025
0229803
Add `Commit::rev`
DrChat Feb 9, 2025
9cf2adb
Add github workflow
DrChat Feb 9, 2025
7d35a49
Remove vscode from gitignore
DrChat Feb 9, 2025
84684f8
Use `RecordKey` in `Repository::get` API
DrChat Feb 10, 2025
2a73c62
Add `extract_path` APIs
DrChat Feb 11, 2025
a0fffb8
Fix some lingering bugs in `CarStore`
DrChat Feb 11, 2025
b430d10
Add `_raw` API variants to `Repository`
DrChat Feb 11, 2025
227517a
Add another 2 block test for CarStore
DrChat Feb 12, 2025
491e3b7
Add an `Error::Other` variant for block storage
DrChat Feb 12, 2025
29066f4
Add a test for `set_root`
DrChat Feb 12, 2025
0930ce6
Fix one more bug encountered when writing blocks
DrChat Feb 12, 2025
adb3888
`extract_path` -> `extract`; add `_into` variants
DrChat Feb 12, 2025
65aa2dc
Downgrade cid reference to straight copy instead
DrChat Feb 15, 2025
b6749af
Deduplicate some code
DrChat Feb 15, 2025
3c07d61
Add extraction test
DrChat Feb 15, 2025
ed4b17c
Builder `sign` -> `finalize`
DrChat Feb 15, 2025
8526239
Slightly expand extraction test for exclusion proofs
DrChat Feb 15, 2025
5768222
Remove the hacked-together `CarStore::set_root`
DrChat Feb 15, 2025
073d2a9
Add complex extraction test
DrChat Feb 15, 2025
dfbc560
Fix a bug causing extraction to fail to extract the MST root
DrChat Feb 15, 2025
67203d7
Add `MemoryBlockStore::contains`
DrChat Feb 15, 2025
2215b35
clippy fix
DrChat Feb 15, 2025
53b1759
Add `Repository::get_raw_cid` API
DrChat Feb 15, 2025
729d35d
Return both a `CommitBuilder` and `Cid` from add/update APIs
DrChat Feb 16, 2025
bc2df3b
`Repository::tree` API
DrChat Feb 16, 2025
f2eb89c
Perform deserialization in `get_raw` APIs
DrChat Feb 16, 2025
4d02f37
Add prefixed iteration APIs to `Tree`
DrChat Feb 16, 2025
6a88b4b
Use `serde-bytes` to assist with deserializing byte arrays
DrChat Feb 16, 2025
b4cd564
Fix warnings
DrChat Feb 16, 2025
dea7206
Add `export` APIs
DrChat Feb 16, 2025
d38cc1e
Fix test
DrChat Feb 17, 2025
08427e0
Remove old `commit` tests
DrChat Feb 17, 2025
9b88690
Remove `CommitBuilder` example doc comment
DrChat Feb 17, 2025
e56b0f0
Fix a potential panic; cleanup
DrChat Feb 17, 2025
4fdb438
Apply suggestions from code review
DrChat Feb 18, 2025
2d5a36c
`cargo clippy`
DrChat Feb 18, 2025
f24ee19
Apply fixes suggested by clippy
DrChat Feb 18, 2025
4bfe0ac
Fix signing
DrChat Feb 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .github/workflows/repo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Repo

on:
push:
branches: ["main"]
pull_request:
branches: ["main"]

env:
CARGO_TERM_COLOR: always

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build
run: |
cargo build -p atrium-repo --verbose
- name: Run tests
run: |
cargo test -p atrium-repo
Loading