Expand description
General-purpose building blocks for Loom implementations.
This library aims to make building Loom implementations easier by providing the following primitives:
dependent::DependentWeave- A tree-basedWeavewhere eachNodedepends on the contents of the previous Node.- [
dependent::loro::DependentLoroWeave] - Adependent::DependentWeavewrapper which adds collaborative editing using the [loro] CRDT library (requiresrkyvandlorofeatures to be enabled).
- [
independent::IndependentWeave- A DAG-basedWeavewhere eachNodedoes not depend on the contents of the previous Node.
Efficient (de)serialization is supported using rkyv and serde. Basic functionality for versioning serialized data is provided by versioning::VersionedBytes (requires rkyv feature to be enabled).
Re-exports§
Modules§
- dependent
DependentWeaveis a tree-basedWeavewhere eachNodedepends on the contents of the previous Node.- independent
IndependentWeaveis a DAG-basedWeavewhere eachNodedoes not depend on the contents of the previous Node.- versioning
- Utilities for versioning serialized binary data.
- wrappers
- Wrappers which add additional functionality to
Weaveimplementations.
Enums§
- Discrete
Content Result - A type representing the results of an action on a
DiscreteContentsitem.
Traits§
- Active
Path Weave - A
Weavewhere everyNodein the active path is always considered “active”. - Active
Singular Weave - A
Weavewhere only oneNodecan be considered “active” at a time. - Bookmarkable
Weave - A
Weavewhere nodes can be bookmarked. - Deduplicatable
Contents Nodecontents which can be meaningfully deduplicated.- Deduplicatable
Weave - A
WeavewhereNodeobjects can be meaningfully deduplicated by their contents. - Discrete
Contents Nodecontents which can be split apart or merged together.- Discrete
Weave - A
Weavewhere the contents ofNodeobjects can be split and merged. - Immutable
Active Path Weave - An
ImmutableWeavewhere everyNodein the active path is always considered “active”. - Immutable
Active Singular Weave - An
ImmutableWeavewhere only oneNodecan be considered “active” at a time. - Immutable
Bookmarkable Weave - An
ImmutableWeavewhere nodes can be bookmarked. - Immutable
Metadata Weave - An
ImmutableWeavecontaining document-wide metadata. - Immutable
Sortable Weave - An
ImmutableWeavewhere the ordering of nodes is stable and can be user-defined. - Immutable
Weave - A read-only
Weave. - Independent
Contents Nodecontents which do not depend on the contents of otherNodeobjects in order to be meaningful.- Independent
Weave - A
WeavewhereNodeobjects do not depend on their parents in order to be meaningful. - Metadata
Weave - A
Weavecontaining document-wide metadata. - Node
- An item within a
Weavewhich can be connected to other items. - Semi
Independent Weave - A
WeavewhereNodeobjects do not depend on the contents of their parents in order to be meaningful. - Sortable
Bookmarkable Weave - A
Weavewhere the ordering of bookmarked nodes is stable and can be user-defined. - Sortable
Weave - A
Weavewhere the ordering of nodes is stable and can be user-defined. - Weave
- A document linking together multiple
Nodeobjects without cyclical links.