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

Apache-2.0 - 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.23 | Updated: 10-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.23.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.23-py3-none-any.whl (639.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: exonware_xwnode-0.9.0.23.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.23.tar.gz
Algorithm Hash digest
SHA256 85c7af2c0f80c0698df0822aa01740ec4d3e812d28fcf0534eca085f3051f8e3
MD5 9918d54f198e0e8763cfc0938bb708ea
BLAKE2b-256 86dcb000c5b756772605e78988d4664aa1953d3b5152b1e2c8288852c250c341

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for exonware_xwnode-0.9.0.23-py3-none-any.whl
Algorithm Hash digest
SHA256 c16f08aa4809ba22a244c889656b5c37c2e342d857efe220af799469057f1336
MD5 ac3d314ab9727b9f6fa696e0b6ffabc4
BLAKE2b-256 7362429de9a9f1ea0eea6d44cbad6051a38773dc323eb5a0d8e32f7627fa83b0

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