rust-ipfs/unixfs
bors[bot] d2760bb4d5
Merge #294
294: Remove Walker indirection r=koivunej a=c410-f3r

Fixes #200.

By using mutable references instead of taking ownership, the following is now possible:

```rust
ContinuedWalk::Symlink(bytes, _, path, metadata) => {
  ...
}

// Instead of

ContinuedWalk::Symlink(bytes, item) => {
  if let Entry::Metadata(metadata_entry) = item.as_entry() {
    ...
  }
}
```

Co-authored-by: Caio <c410.f3r@gmail.com>
Co-authored-by: Joonas Koivunen <joonas@equilibrium.co>
2020-08-14 11:36:11 +00:00
..
benches bench: filter symlinks earlier 2020-08-10 11:45:58 +03:00
examples doc: update comments regarding buckets 2020-08-14 10:32:10 +03:00
src Merge #294 2020-08-14 11:36:11 +00:00
Cargo.toml chore: future(/feature)-proof the criterion dep 2020-08-14 11:30:20 +02:00
CHANGELOG.md chore: changelog 2020-07-03 12:20:58 +03:00
pb-rs-gen.sh fix: remove --owned from pb-rs gen 2020-06-08 15:03:34 +03:00
README.md chore(unixfs): README, license notes, set version to 0.0.1 2020-06-18 20:24:57 +03:00

ipfs-unixfs

Goals

  • blockstore API independent way to traverse the merkledag
    • the core read API does not deal with loading blocks
    • instead access to interesting Cids is given

Status

  • first iteration of file reader has been implemented
  • first iteration of resolving IpfsPath segments through directories has been implemented
    • as the HAMTShard structure is not fully understood, all buckets are searched, however the API is expected to remain the same even if more efficient lookup is implemented
  • first iteration of /get-like tree walking implemented
  • creation and alteration of dags has not been implemented

Usage

  • The main entry point to walking anything unixfs should be ipfs_unixfs::walk::Walker
  • The main entry point to resolving links under dag-pb or unixfs should be ipfs_unixfs::resolve
  • There is a ipfs_unixfs::file::visit::FileVisit utility but it should be considered superceded by ipfs_unixfs::walk::Walker

License

MIT or APL2.