Skip to content

Comments

WIP: Remove routing_tree dependency and remake how we are handling routes#350

Open
burbas wants to merge 13 commits intomasterfrom
new-router
Open

WIP: Remove routing_tree dependency and remake how we are handling routes#350
burbas wants to merge 13 commits intomasterfrom
new-router

Conversation

@burbas
Copy link
Contributor

@burbas burbas commented Jan 16, 2026

This pull request introduces significant improvements to the Nova application's ability to manage multiple sub-applications dynamically, refactors routing logic to use a new trie-based backend, and adds new API functions for programmatic control. The changes enhance modularity, allow for pragmatic application lifecycle management, and transition routing from the old routing_tree to nova_routing_trie for better performance and maintainability.

@burbas burbas self-assigned this Jan 16, 2026
@burbas burbas added the enhancement New feature or request label Jan 16, 2026
@burbas burbas requested a review from Taure as a code owner January 16, 2026 20:26
burbas and others added 4 commits January 16, 2026 21:32
- Rename module/file from nova_routing_trie to nova_routing_tree
- Add find/4 with router-compatible API (Host, Path, Method, Tree)
  returning {ok, Bindings, Payload} | {error, not_found} |
  {error, comparator_not_found, AllowedMethods}
- Handle '_' as wildcard method (maps to <<"ALL">>)
- Handle integer paths (status codes like 404)
- Fix insert/5 wrapper in nova_router to unwrap {ok, Tree} return
- Fix remove_application/1 to use StorageBackend instead of
  hardcoded persistent_term
- Fix foldl route tuple pattern to include Method (4-tuple)
- Remove dead Pathinfo pattern match clause
- Add eunit tests for find/4, integer paths, wildcard method
- All types renamed: trie -> tree, trie_node -> tree_node

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants