IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an
email to Administrator. User accounts are meant only to access repo
and report issues and/or generate pull requests.
This is a purpose-specific Git hosting for
BaseALT
projects. Thank you for your understanding!
Только зарегистрированные пользователи имеют доступ к сервису!
Для получения аккаунта, обратитесь к администратору.
client1 and client2 were a pair of two peers working together to form up
an example where one client creates an ipld document and the other one
downloads it, reading IPLD projections. the bitswap side is already done
elsewhere and the nature of use having to run two clients, there just
wasn't an easy way around without running the two nodes in the same
process. if that was done, then the example would be the same as
tests.
solved this wrong by isolating it first at http level, however now at
the ipfs::unixfs::cat level the http implementation is looking small as
it should be.
touched some error types and converted them to thiserror.
A lot of code but going back and forth as well.
* fix: request logger name for good
* wip: initial broilerplate
* feat: ipfspath parsing and walking
* refactor: rewrite to walk the path before streaming
* fix: handling 0 for ipld link
* wip: get first tests to pass
still need to figure out the Send + Sync + 'static bound, issue is with
Sync, which might come from the refs used, get_block(&cid)..
this required some unsafety to be able to present the Stream as Send +
Sync + 'static as required by hyper. not 100% sure if that pin_project
is ok to do, but the only interfaces exposed are callable as futures so
it shouldn't be too bad.
* feat: format string support
* add: manual RefsOptions deserialization to have multiple `arg`
* fix: resolve multiple paths
I had not originally noticed that we need to do the walk from multiple
paths.
* add: dag-pb specific ipfspath walking
* add: make IpfsPath better debuggable
* wip: adjust logging
* add: yield ipld parsing failed err's
* add: "specialize" ipld_links for dag-pb
* feat: support visiting unique nodes
* fix: instead of stopping, filter out too deep elements
also, this should be done when expanding the nodes, not at this stage.
* refactor: reorg and document
originally it was easier to write everything to the same file, but it
gets difficult to read after 1000 lines. while reorganising stuff into
more tight modules, some direct calls were changed not to be needed,
like RefsOptions creating the EdgeFormatter; the EdgeFormatter is not
created in the refs function itself.
chopped off parts:
* RefsOptions stuff to refs/options.rs
* EdgeFormatter and the string format to refs/format.rs
* Unshared to refs/unshared.rs
* HandledErr, StreamResponse to refs/support.rs
* refactor: minor cleanup and docs
* fix: refs tests, enable unique test
* fix: use specific rust-ipld version with cbor fix
the situation is not good, as it would make sense to re-export libipld
from ipfs as parts are already re-exported but with strange names.
* refactor: allow dead_code StringError::new
* refactor: use the Edge for refs-local as well
* chore: cargo fmt and reorder tests
* doc: replace fixme with confirmed
* add: port tests for ipfspath
* fix: unignore good_but_unsupported test
* add: test cases for slash dedup per discussion
* add: walk dag-cbor tests for IpfsPath
* add: dag-pb path walking test
* add: tests for walking over a cbor link
* add: test case for dapb link listing
* fix: refs_local test, move all tests under mod test
* fix: remove unwrap from refs-local
kept the return value as a stream. it'll at least save us the trouble of
concatenating all of the values into a big vector.
we cannot simply replace async aware channels with crossbeam channels,
which cannot wake us up. keeping the channel buffer size at 1 to catch
any errors.
finally converged to a `crate::tests::async_test` wrapper for invoking
`tokio::run` **and** getting failures out of the test. later tokios
should include test wrappers.
- add async_trait dep for repo
- use async fn everywhere possible
- update toolchain to semi-latest
- update futures 0.3
- update libp2p 0.13
- get rid of rocksdb for now
- allow warnings and disable bare_trait_objects for protoc generated
- wasteful vec workaround (shouldve used MultihashRef?)
- stop using drain_filter (possibly correctly?)
Note: this changes the generated code
Note: feature(try_trait) remains