Open mattyg opened 1 year ago
Thanks! In the meantime you should be able to reference the packages straight from git?
hdk_time_indexing = {git = "https://github.com/h-REA/hREA", tag = "happ-0.1.2-beta", package = "hdk_time_indexing"}
Thanks! In the meantime you should be able to reference the packages straight from git?
hdk_time_indexing = {git = "https://github.com/h-REA/hREA", tag = "happ-0.1.2-beta", package = "hdk_time_indexing"}
nice! I didn't know I could do that.
Just out of curiosity, what are you hoping to use them on/for @mattyg ? :)
Just out of curiosity, what are you hoping to use them on/for @mattyg ? :)
Well I've been playing with the holochain-open-dev time index for querying feeds in clutter and herddit -- it looks like this version is bit cleaner implementation and more actively maintained so probably makes sense switch to it. I expect there will be a need for time indexes in most apps.
The semantic index just looks like a way more robust, production-grade architecture that abstracts any kind of data relationships, so I'd like to try using it over just manually creating some links for a specific use-case.
Idk my impression is hREA is the most complicated, flexible and high quality package in the holochain ecosystem and has implemented a lot of novel patterns that I'll need to be get my head to use in future applications. So part of the answer is "I don't know what I need it for but I'm pretty sure I need it" :laughing:
Thanks for saying so @mattyg <3 It's encouraging to know that people are following along and finding these libraries to be useful. At some point once the core API is stabilised we need to do a maintenance pass and extract some of the common modules to separate repos in the holochain-open-dev
org so that they can be maintained separately.
All inspiration goes to @jdeepee for the original library which heavily inspired the design of hdk_time_indexing
. Somewhat amusingly I initially experimented with a more storage-efficient architecture where each node in the tree was just the raw bytes of the DateTime
but ran into trouble correctly differentiating nodes and ended up back at a string-based storage method as per his original designs. (And since Path
node content is no longer stored to the DHT, also kindof a moot point anyway.)
For this library the outstanding feature to complete prior to release is #85 which involves a complex tree traversal algorithm for paginating forwards and backwards in an ordered time tree.
hdk_semantic_indexes
(_zome_derive
) is really just a set of zome API conventions for pluggable indexing behaviour but it has been encouraging how little improvement has been required on that since its initial inception. About the only noteworthy necessary addition has been string-based indexing as used in the Valueflows Agent.agentType
index. That feature feels a bit like it's been shoe-horned into an existing pattern and could use a code review; but other than that I'm pretty happy with this library and the API is unlikely to change significantly (though I do hope that the configuration format will change).
Also want to mention hdk_uuid_types
because I think this problem is oft-overlooked in Holochain application design; i.e. how do we have complex many:many relationships between Cells and how can hApps load multiple contextually-bound interfaces to different overlapping networks? The semantic indexing library depends on this lib, so does the...
I'm pretty happy with hdk_records
as an alternative to hdk_crud
though I find myself about to integrate @Connoropolous' signaling logic into the outer parts and would want to finish that before considering it feature-complete.
Also it's not such a great name now since the terminology changes so some renaming of this library is likely in future.
This is really really helpful context thank you! I'll have to dig into these further but will definitely reach out if I have more questions. Thanks again
Hey @pospi can you clarify the current status of pagination in hdk_time_indexing? I know you said its not implemented fully and I see here that it's use is commented out in hdk_semantic_indexes (https://github.com/h-REA/hREA/blob/c5487c906692f4c33b74ff05f8cd97f9f97a33c4/lib/hdk_semantic_indexes/zome/src/lib.rs#L145), but it looks like a bunch of the logic is already implemented? Just trying to figure out if I can use it as is, or need to implement some more functionality. thanks!
I'd really love to reuse some of the lib crates you've built in other projects. Any chance you could publish them independently?
The most useful to me in the short term are hdk_semantic_indexes and hdk_time_indexing. Thanks I love what you're doing.