97 releases

new 0.3.0-beta-dev.2 May 31, 2023
0.2.1-beta-dev.0 May 15, 2023
0.2.0-beta-rc.1 Mar 22, 2023
0.1.0-beta-rc.1 Dec 23, 2022
0.0.2 Jul 29, 2021

#1005 in Magic Beans

Download history 355/week @ 2023-02-11 344/week @ 2023-02-18 304/week @ 2023-02-25 147/week @ 2023-03-04 220/week @ 2023-03-11 219/week @ 2023-03-18 339/week @ 2023-03-25 94/week @ 2023-04-01 201/week @ 2023-04-08 400/week @ 2023-04-15 353/week @ 2023-04-22 304/week @ 2023-04-29 501/week @ 2023-05-06 330/week @ 2023-05-13 217/week @ 2023-05-20 286/week @ 2023-05-27

1,394 downloads per month
Used in 6 crates (via holochain)

Custom license

52K SLoC



Retrieve vs Get

Get checks CRUD metadata before returning an the data where as retrieve only checks that where the data was found the appropriate validation has been run.


The Cascade is a multi-tiered accessor for Holochain DHT data.

Note that the docs for this crate are admittedly a bit loose and imprecise, but they are not expected to be incorrect.

It is named "the Cascade" because it performs "cascading" gets across multiple sources. In general (but not in all cases), the flow is something like:

  • First attempts to read the local storage
  • If that fails, attempt to read data from the network cache
  • If that fails, do a network request for the data, caching it if found

Retrieve vs Get

There are two words used in cascade functions: "get", and "retrieve". They mean distinct things:

  • "get" ignores invalid data, and sometimes takes into account CRUD metadata before returning the data, so for instance, Deletes are allowed to annihilate Creates so that neither is returned. This is a more "refined" form of fetching data.
  • "retrieve" only fetches the data if it exists, without regard to validation status. This is a more "raw" form of fetching data.


~2M SLoC