refactor: restructure codebase as monorepo #12
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently django-components extends Django's template syntax with things like literal lists, dicts, etc. This is currently implemented in Pure python, and it's fairly slow (adds ~1s on the first load for large pages with ~500 components).
I have re-implemented the extended Django syntax as a Rust create.
With that, I want to restructure this repo as monorepo.
There's several reasons:
When packaged and built separately, each Rust-based python package comes at about 100MB. So instead I want to have a single
djc-corepackage that provides a single API. So that no matter how many Rust crates there are, the size still is only those 100MB.The Rust->Python binding is done by PyO3. When I was updating this repo to support Python 3.14 (see Support Python 3.14 #10), I had to update it from pyo3 v0.19 to pyo3 v0.27. There was a lot of breaking changes, and it took 1-2 hrs to update it.
By having a monorepo, I won't have to go through this with every single Rust create. Instead, all creates will be updated and managed simultaneously.
Packages: