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.

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/.


Docs and tests


License and links

MIT - see LICENSE.

Contributing: CONTRIBUTING.md · Security: SECURITY.md (when present). Version: 0.9.0.17 | Updated: 30-Mar-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.17.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.17-py3-none-any.whl (635.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: exonware_xwnode-0.9.0.17.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.17.tar.gz
Algorithm Hash digest
SHA256 a117dd630f692c87dea5bd4c4dc7495fd344fd02da679a7cfd8850efd4d2b826
MD5 6b4e7cce9b9838ed9b0be7432091e744
BLAKE2b-256 19bcbeb4ad082a4089357e1b75c24754466b01c9bad51695f771f2f8521f2498

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for exonware_xwnode-0.9.0.17-py3-none-any.whl
Algorithm Hash digest
SHA256 c5974bf0b8babf739f2ad2cafd86fa6cd711189bc5ea1aa57ca9c3839b2f55a7
MD5 9a87e3db3fe6ad334f4c5f923b94b1d1
BLAKE2b-256 c60d6b0a53c384947a8d222a3bd306cbe4ec7878d2eb7b38069d80fdd94fc74c

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