Skip to main content

Node-based data processing and graph computation library

Project description

xwnode

Graph-shaped data with one API: many node and edge strategies, lots of query languages behind the same surface, and AUTO when you want the implementation chosen for you.

Longer write-up: README_LONG.md.

Company: eXonware.com · Author: eXonware Backend Team · Email: connect@exonware.com

Status Python License


Install

Install What you get When to use
pip install exonware-xwnode Lite - core only Smallest install.
pip install exonware-xwnode[lazy] Lazy - backends pulled in when first used Local dev.
pip install exonware-xwnode[full] Full - common strategies pre-installed CI or production bundles.

Requires xwsystem. Extras only add dependencies; the import path stays the same.


Quick start

from exonware.xwnode import XWNode

node = XWNode.from_native({
    'users': [{'name': 'Alice', 'age': 30, 'city': 'NYC'}, {'name': 'Bob', 'age': 25, 'city': 'LA'}],
    'products': {'laptop': {'price': 1000}, 'phone': {'price': 500}}
})

print(node['users'][0]['name'].value)   # Alice
results = node.query("SELECT * FROM users WHERE age > 25")
node.add_edge('Alice', 'Bob', {'relationship': 'friend'})
friends = node.neighbors('Alice')

Pick a mode explicitly (NodeMode.HASH_MAP, NodeMode.LSM_TREE, EdgeMode.COMPRESSED_GRAPH, EdgeMode.HNSW, …) or use NodeMode.AUTO. See REF_14_DX and REF_15_API.


What you get

Area Contents
Node strategies Hash maps, ordered structures, LSM-style trees, tries, learned indexes, and more behind one API.
Edge strategies Adjacency, compressed graphs, HNSW, R-tree, quadtree, temporal layouts, …
Query Many languages (SQL, GraphQL, Cypher, XPath, …) via xwquery.
Operations WAL, Bloom filters, lock-free options, automatic strategy selection where enabled.

Status and roadmap: REF_22_PROJECT. Full strategy lists: REF_15_API, docs/.


Strategy Matrix - Possibilities

94 IMPLEMENTATIONS

63 NODE STRATEGIES x 31 EDGE STRATEGIES = 1,953 MIX-AND-MATCH COMBINATIONS

Choose any node strategy and pair it with any edge strategy under the same XWNode API surface.

Scientific compatibility note: Not every node-edge combination is semantically valid for every workload. Use strategy pairs that match the data model and query physics. Example: matrix/sparse-matrix representations and tree-centric representations solve different structural problems, so they should not be treated as equivalent.

Node strategy implementations (63)

Implementation File
AdjacencyListStrategy adjacency_list.py
AhoCorasickStrategy aho_corasick.py
ArrayListStrategy array_list.py
ARTStrategy art.py
ASTStrategy ast.py
AVLTreeStrategy avl_tree.py
BPlusTreeStrategy b_plus_tree.py
BTreeStrategy b_tree.py
BitmapStrategy bitmap.py
BitsetDynamicStrategy bitset_dynamic.py
BloomFilterStrategy bloom_filter.py
BloomierFilterStrategy bloomier_filter.py
BwTreeStrategy bw_tree.py
CircularBufferStrategy circular_buffer.py
CountMinSketchStrategy count_min_sketch.py
COWTreeStrategy cow_tree.py
CRDTMapStrategy crdt_map.py
CuckooHashStrategy cuckoo_hash.py
DataInterchangeOptimizedStrategy data_interchange_optimized.py
DawgStrategy dawg.py
DequeStrategy deque.py
ExtendibleHashStrategy extendible_hash.py
FenwickTreeStrategy fenwick_tree.py
HAMTStrategy hamt.py
HashMapStrategy hash_map.py
HeapStrategy heap.py
HistogramStrategy histogram.py
HopscotchHashStrategy hopscotch_hash.py
HyperLogLogStrategy hyperloglog.py
IntervalTreeStrategy interval_tree.py
KdTreeStrategy kd_tree.py
LearnedIndexStrategy learned_index.py
LinearHashStrategy linear_hash.py
LinkedListStrategy linked_list.py
LRUCacheStrategy lru_cache.py
LSMTreeStrategy lsm_tree.py
MasstreeStrategy masstree.py
OrderedMapStrategy ordered_map.py
OrderedMapBalancedStrategy ordered_map_balanced.py
PatriciaStrategy patricia.py
PersistentTreeStrategy persistent_tree.py
PriorityQueueStrategy priority_queue.py
QueueStrategy queue.py
RadixTrieStrategy radix_trie.py
RangeMapStrategy range_map.py
RedBlackTreeStrategy red_black_tree.py
RoaringBitmapStrategy roaring_bitmap.py
RopeStrategy rope.py
SegmentTreeStrategy segment_tree.py
SetHashStrategy set_hash.py
SetTreeStrategy set_tree.py
SkipListStrategy skip_list.py
SparseMatrixStrategy sparse_matrix.py
SplayTreeStrategy splay_tree.py
StackStrategy stack.py
SuffixArrayStrategy suffix_array.py
TDigestStrategy t_digest.py
TTreeStrategy t_tree.py
TreapStrategy treap.py
TreeGraphHybridStrategy tree_graph_hybrid.py
TrieStrategy trie.py
UnionFindStrategy union_find.py
VebTreeStrategy veb_tree.py

Edge strategy implementations (31)

Implementation File
AdjListStrategy adj_list.py
AdjMatrixStrategy adj_matrix.py
BidirWrapperStrategy bidir_wrapper.py
BitemporalStrategy bitemporal.py
BlockAdjMatrixStrategy block_adj_matrix.py
BVGraphStrategy bv_graph.py
CompressedGraphStrategy compressed_graph.py
COOStrategy coo.py
CSCStrategy csc.py
CSRStrategy csr.py
DynamicAdjListStrategy dynamic_adj_list.py
EdgeListStrategy edge_list.py
EdgePropertyStoreStrategy edge_property_store.py
EulerTourStrategy euler_tour.py
FlowNetworkStrategy flow_network.py
GraphBLASStrategy graphblas.py
HNSWStrategy hnsw.py
Hop2LabelsStrategy hop2_labels.py
HyperEdgeSetStrategy hyperedge_set.py
IncidenceMatrixStrategy incidence_matrix.py
K2TreeStrategy k2_tree.py
LinkCutStrategy link_cut.py
MultiplexStrategy multiplex.py
NeuralGraphStrategy neural_graph.py
OctreeStrategy octree.py
QuadTreeStrategy quadtree.py
RoaringAdjStrategy roaring_adj.py
RTreeStrategy rtree.py
TemporalEdgeSetStrategy temporal_edgeset.py
TreeGraphBasicStrategy tree_graph_basic.py
WeightedGraphStrategy weighted_graph.py

Source of truth: strategy classes discovered in src/exonware/xwnode/nodes/strategies/ and src/exonware/xwnode/edges/strategies/.


Ecosystem functional contributions

xwnode owns structural representation; sibling libs add query, data transport, validation, and persistence capabilities around that structure. You can use xwnode standalone as a graph/tree/strategy data engine. The full XW ecosystem is optional and is mainly for enterprise and mission-critical scenarios where structure, query, validation, and storage need unified self-managed infrastructure.

Supporting XW lib What it provides to xwnode Functional requirement it satisfies
XWQuery Multi-language query execution over node/edge structures. Rich graph/tree querying without binding to a single query syntax.
XWData Data load/save/transform bridges to and from node structures. Interchange between external formats and in-memory graph models.
XWSystem Core runtime foundations (serialization, caching, utilities, base contracts). Performance and consistency for node strategies and runtime behavior.
XWSchema Optional schema constraints for node payload integrity. Validation guarantees for graph payloads and structured updates.
XWStorage Durable backend persistence for node-driven datasets. Persistent graph/state storage beyond process memory.
XWEntity Domain entity alignment for graph-backed business models. Domain-aware graph operations rather than raw structural manipulation only.

Competitive edge: xwnode is not only a graph container; it is a strategy-rich structure engine that plugs directly into query, validation, and storage layers.


Docs and tests


License and links

MIT - see LICENSE.

Async Support

  • xwnode includes asynchronous execution paths in production code.
  • Source validation: 522 async def definitions and 0 await usages under src/.
  • Use async APIs for I/O-heavy or concurrent workloads to improve throughput and responsiveness.

Version: 0.9.0.21 | Updated: 04-Apr-2026

Built with ❤️ by eXonware.com - Revolutionizing Python Development Since 2025

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

exonware_xwnode-0.9.0.21.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

exonware_xwnode-0.9.0.21-py3-none-any.whl (636.2 kB view details)

Uploaded Python 3

File details

Details for the file exonware_xwnode-0.9.0.21.tar.gz.

File metadata

  • Download URL: exonware_xwnode-0.9.0.21.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for exonware_xwnode-0.9.0.21.tar.gz
Algorithm Hash digest
SHA256 255673b4e031f5315c52df20c220c8f5a127d4467ebf7bf68cee77126c3b49aa
MD5 4a847e69ba5dbc2d463e0ab696cc76cf
BLAKE2b-256 cb2e78521cc23460b2d0fb02537f50004077824687ece786b78e888d947c643c

See more details on using hashes here.

File details

Details for the file exonware_xwnode-0.9.0.21-py3-none-any.whl.

File metadata

File hashes

Hashes for exonware_xwnode-0.9.0.21-py3-none-any.whl
Algorithm Hash digest
SHA256 d65cc157c993677e42af22c323d3dc22d4af7af455c482d9c05e3c1248d8dd1f
MD5 e13188ec624b5962700900db7f8aad4f
BLAKE2b-256 aef48ad8e5c4fc1d21c4b6832951a2555fab5f898259defa9de420457eee76df

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page