store

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 13, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package store provides filesystem-backed persistence for graphs.

Package store provides filesystem-backed persistence for graphs.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type FSStore

type FSStore struct {
	// Root is the base directory for the graph store.
	Root string
}

FSStore implements Store using the filesystem. It stores one file per node and one file per edge for git-friendly diffs.

func NewFSStore

func NewFSStore(root string) (*FSStore, error)

NewFSStore creates a new filesystem-backed store.

func (*FSStore) DeleteEdge

func (s *FSStore) DeleteEdge(from, edgeType, to string) error

DeleteEdge removes an edge.

func (*FSStore) DeleteNode

func (s *FSStore) DeleteNode(id string) error

DeleteNode removes a node by ID.

func (*FSStore) GetEdge

func (s *FSStore) GetEdge(from, edgeType, to string) (*graph.Edge, error)

GetEdge retrieves an edge by its composite key.

func (*FSStore) GetNode

func (s *FSStore) GetNode(id string) (*graph.Node, error)

GetNode retrieves a node by ID.

func (*FSStore) ListEdges

func (s *FSStore) ListEdges() ([]*graph.Edge, error)

ListEdges returns all edges in the store.

func (*FSStore) ListNodes

func (s *FSStore) ListNodes() ([]*graph.Node, error)

ListNodes returns all nodes in the store.

func (*FSStore) LoadGraph

func (s *FSStore) LoadGraph() (*graph.Graph, error)

LoadGraph loads the entire graph from storage.

func (*FSStore) SaveGraph

func (s *FSStore) SaveGraph(g *graph.Graph) error

SaveGraph saves an entire graph to storage.

func (*FSStore) WriteEdge

func (s *FSStore) WriteEdge(e *graph.Edge) error

WriteEdge writes an edge to the filesystem.

func (*FSStore) WriteNode

func (s *FSStore) WriteNode(n *graph.Node) error

WriteNode writes a node to the filesystem.

type Store

type Store interface {
	// WriteNode writes a node to storage.
	WriteNode(n *graph.Node) error

	// WriteEdge writes an edge to storage.
	WriteEdge(e *graph.Edge) error

	// GetNode retrieves a node by ID.
	GetNode(id string) (*graph.Node, error)

	// GetEdge retrieves an edge by its composite key (from__type__to).
	GetEdge(from, edgeType, to string) (*graph.Edge, error)

	// ListNodes returns all nodes in the store.
	ListNodes() ([]*graph.Node, error)

	// ListEdges returns all edges in the store.
	ListEdges() ([]*graph.Edge, error)

	// DeleteNode removes a node by ID.
	DeleteNode(id string) error

	// DeleteEdge removes an edge.
	DeleteEdge(from, edgeType, to string) error

	// LoadGraph loads the entire graph from storage.
	LoadGraph() (*graph.Graph, error)

	// SaveGraph saves an entire graph to storage.
	SaveGraph(g *graph.Graph) error
}

Store defines the interface for graph persistence.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL