Welcome to @rimbu/graph
! This package provides a versatile and powerful Graph data structure, allowing you to model complex relationships between nodes with ease.
- Directed and Undirected Graphs: Choose between Arrow Graphs (directed) and Edge Graphs (undirected) based on your needs.
- Valued Graphs: Add values to your edges for richer data representation.
- Hashed and Sorted Implementations: Optimize your graphs with hashed or sorted nodes for efficient lookups and ordered traversal.
Name | Description |
---|---|
ArrowGraph<N> |
A generic directed graph with nodes of type N . |
ArrowGraphHashed<N> |
A directed graph with hashed nodes of type N . |
ArrowGraphSorted<N> |
A directed graph with sorted nodes of type N . |
EdgeGraph<N> |
A generic undirected graph with nodes of type N . |
EdgeGraphHashed<N> |
An undirected graph with hashed nodes of type N . |
EdgeGraphSorted<N> |
An undirected graph with sorted nodes of type N . |
Graph<N> |
A generic graph with nodes of type N . |
ValuedGraph<N, V> |
A generic graph with nodes of type N and edges with value type V . |
VariantGraph<N> |
A generic type-variant graph with nodes of type N . |
VariantValuedGraph<N, V> |
A generic type-variant graph with nodes of type N and edges with value type V . |
For complete documentation, please visit the Graph page in the Rimbu Docs, or directly explore the Rimbu Graph API Docs.
Experience @rimbu/graph
in action! Try Out Rimbu on CodeSandBox.
Yarn:
yarn add @rimbu/graph
npm:
npm install @rimbu/graph
Bun:
bun add @rimbu/graph
Create or edit import_map.json
in your project root:
{
"imports": {
"@rimbu/": "https://deno.land/x/rimbu@x.y.z/"
}
}
Replace x.y.z
with the desired version.
In this way you can use relative imports from Rimbu in your code, like so:
import { List } from '@rimbu/core/mod.ts';
import { HashMap } from '@rimbu/hashed/mod.ts';
Note that for sub-packages, due to conversion limitations it is needed to import the index.ts
instead of mod.ts
, like so:
import { HashMap } from '@rimbu/hashed/map/index.ts';
To run your script (let's assume the entry point is in src/main.ts
):
deno run --import-map import_map.json src/main.ts
import { EdgeGraphSorted } from '@rimbu/graph';
console.log(EdgeGraphSorted.of([1, 2], [2, 3], [3, 1], [5]).toString());
Created and maintained by Arvid Nicolaas.
We welcome contributions! Please read our Contributing guide.
Made with contributors-img.
This project is licensed under the MIT License. See the LICENSE for details.