Skip to main content

Convenience wrapper for exonware-xwnode - provides 'import xwnode' alias

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


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.20 | Updated: 31-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

xwnode-0.9.0.20.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.

xwnode-0.9.0.20-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

File details

Details for the file xwnode-0.9.0.20.tar.gz.

File metadata

  • Download URL: xwnode-0.9.0.20.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 xwnode-0.9.0.20.tar.gz
Algorithm Hash digest
SHA256 f83aac94d3d79f2b06184c45961d7fc3954afc12dc84de5583678466d0825826
MD5 254a49f45dce458622247b132ff63675
BLAKE2b-256 835499547ed416bde7bfbfa67d63faaa3e2205af1b18331a47842e67445e530d

See more details on using hashes here.

File details

Details for the file xwnode-0.9.0.20-py3-none-any.whl.

File metadata

  • Download URL: xwnode-0.9.0.20-py3-none-any.whl
  • Upload date:
  • Size: 8.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for xwnode-0.9.0.20-py3-none-any.whl
Algorithm Hash digest
SHA256 5c5356557a4ba2a20509e437625e5d5a9342a7bd893c50e4feefeca830a53b34
MD5 d58cef8b79314bc7aac8f32b4bae42d6
BLAKE2b-256 84d32134ee0716d5a44c90729e3ed9a43f412ccb80aff5169c7b51e37d615e32

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