- 16 Jul, 2018 14 commits
-
-
Whyrusleeping authored
importer: remove `UnixfsNode` from the balanced builder
-
Lucas Molas authored
The `UnixfsNode` structure has multiple pointers to many (non-complementary) mutually exclusive node types, only some of them are active (not-`nil`) at a given time in the code path which made the code too convoluted. Specifically, the most important distinction between node types was being hidden: leaf nodes vs internal (non-leaf) nodes. Remove entirely the use of `UnixfsNode` from the `balanced` package replacing it in turn with the newly created `FSNodeOverDag` structure that represents the UnixFS node encoded inside the DAG node, primarily used for internal node representations. Leaf nodes are handled exclusively in the `NewLeafDataNode` encapsulating its multiple representations (that we're previously exposed in `UnixfsNode` as conflicting pointers). The `builder.go` file has been completely rewritten, although the basic DAG creation algorithm has been preserved (extending a full DAG by creating a new root and linking the old one as its child), the most significant modification has been in the loop of `Layout` that now only handles internal nodes (i.e., nodes with `depth` bigger than zero) to be able to adapt `fillNodeRec` to only that scenario (avoiding the replace logic of the zero `depth` case with the defective `Set` function, now removed). The `fillNodeRec` now explicitly returns the `ipld.Node` and the size of the file data it's storing to propagate it upwards into the DAG. The `DagBuilderHelper` was heavily extended to incorporate `ipld.Node` functions that would replace the `UnixfsNode` ones used by the balanced builder: `NewLeafNode()`, `NewLeafDataNode()` and `AddNodeAndClose()`. Also, the `ProcessFileStore` function was incorporated to encapsulate all the logic related to the Filestore support which was scattered throughout the builder logic, the `offset` that was being passed through most functions is now a part of the `DagBuilderHelper`. This has turned out to be a rather big commit, it should have been split into more smaller and logically cohesive commits, but the `UnixfsNode` was too entangled inside the logic and that would have required a progressive modification of the `UnixfsNode` structure as well, which wasn't possible as it is still being used by the balanced builder (the same reason why most of the `UnixfsNode`-related functions cannot yet be removed, leaving the `helpers.go` file mostly untouched). License: MIT Signed-off-by: Lucas Molas <schomatis@gmail.com>
-
Whyrusleeping authored
unixfs: fix `FSNode` accessor in `NewDirectoryFromNode`
-
Lucas Molas authored
License: MIT Signed-off-by: Lucas Molas <schomatis@gmail.com>
-
Whyrusleeping authored
Add information about bloom filter to config.md
-
Whyrusleeping authored
unixfs: add a directory interface
-
Whyrusleeping authored
Refactor code
-
Whyrusleeping authored
cmd: fix `files ls` to report hash and size for files
-
Jeromy authored
License: MIT Signed-off-by: Jeromy <jeromyj@gmail.com>
-
Whyrusleeping authored
Efficient "repo stat" (DiskUsage) and "--size-only" flag
-
Whyrusleeping authored
feat: Allow specifing how object data is encoded
-
Whyrusleeping authored
mfs: make `Root` value a `Directory`
-
Whyrusleeping authored
pbdagreader: use FSNode instead of protobuf structure
-
Whyrusleeping authored
dagreader: remove `Offset()` method
-
- 13 Jul, 2018 20 commits
-
-
Whyrusleeping authored
URL store
-
Kevin Atkinson authored
License: MIT Signed-off-by: Kevin Atkinson <k@kevina.org>
-
Kevin Atkinson authored
License: MIT Signed-off-by: Kevin Atkinson <k@kevina.org>
-
Kevin Atkinson authored
License: MIT Signed-off-by: Kevin Atkinson <k@kevina.org>
-
Kevin Atkinson authored
License: MIT Signed-off-by: Kevin Atkinson <k@kevina.org>
-
Kevin Atkinson authored
License: MIT Signed-off-by: Kevin Atkinson <k@kevina.org>
-
Kevin Atkinson authored
License: MIT Signed-off-by: Kevin Atkinson <k@kevina.org>
-
Kevin Atkinson authored
License: MIT Signed-off-by: Kevin Atkinson <k@kevina.org>
-
Kevin Atkinson authored
License: MIT Signed-off-by: Kevin Atkinson <k@kevina.org>
-
Kevin Atkinson authored
License: MIT Signed-off-by: Kevin Atkinson <k@kevina.org>
-
Kevin Atkinson authored
License: MIT Signed-off-by: Kevin Atkinson <k@kevina.org>
-
Kevin Atkinson authored
License: MIT Signed-off-by: Kevin Atkinson <k@kevina.org>
-
Kevin Atkinson authored
License: MIT Signed-off-by: Kevin Atkinson <k@kevina.org>
-
Jakub Sztandera authored
License: MIT Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
-
Whyrusleeping authored
Ipfs 0.4.16 release
-
Jeromy authored
License: MIT Signed-off-by: Whyrusleeping <why@ipfs.com>
-
Steven Allen authored
License: MIT Signed-off-by: Steven Allen <steven@stebalien.com>
-
Rob Brackett authored
License: MIT Signed-off-by: Rob Brackett <rob@robbrackett.com>
-
Steven Allen authored
License: MIT Signed-off-by: Steven Allen <steven@stebalien.com>
-
Steven Allen authored
License: MIT Signed-off-by: Steven Allen <steven@stebalien.com>
-
- 11 Jul, 2018 2 commits
-
-
Whyrusleeping authored
publish the gx 0.4.16-rc3 release
-
Steven Allen authored
License: MIT Signed-off-by: Steven Allen <steven@stebalien.com>
-
- 09 Jul, 2018 4 commits
-
-
Whyrusleeping authored
Ipfs v0.4.16-rc3
-
Jeromy authored
License: MIT Signed-off-by: Jeromy <jeromyj@gmail.com>
-
Lucas Molas authored
License: MIT Signed-off-by: Lucas Molas <schomatis@gmail.com>
-
Lucas Molas authored
Add a UnixFS `Directory` that hides implementation details and helps to distinguish *what* is a UnixFS directory. Replace the `unixfs.io.Directory` structure that contained the HAMT and basic directory implementations (through inner pointers) with an interface containing the same methods. Implement those methods in two clearly distinct structures for each implementation (`BasicDirectory` and `HAMTDirectory`) avoiding pointer logic and clearly differentiating which implementation does what. The potential basic to HAMT transition was being hidden behind the `AddChild` call at the UnixFS layer (changing one implementation pointer with the other one), it is now being explicitly done at the MFS layer. Rename the `dirbuilder.go` file to `directory.go` and change the `Directory` MFS attribute `dirbuilder` to `unixfsDir` to be consistent. License: MIT Signed-off-by: Lucas Molas <schomatis@gmail.com>
-