Architecture Status
Current Phase
Tensor4all.jl is in a review-first skeleton phase.
The package now exposes real metadata-level types and integration boundaries for review, while backend numerics remain intentionally stubbed.
Current Layers
| Layer | Responsibility | Current status |
|---|---|---|
| Core | lazy backend loading, common errors, Index, Tensor | metadata behavior implemented |
| TreeTN | TreeTensorNetwork, chain aliases, runtime topology predicates | metadata behavior implemented |
| Quantics reuse | adopted QuanticsGrids.jl grid and coordinate-conversion surface | curated re-export implemented |
| Quantics local layer | transform descriptors and QTCI placeholders | metadata/stub behavior implemented |
| Extensions | ITensors and HDF5 compatibility glue | extension-only stubs implemented |
| BubbleTeaCI | TTFunction and high-level function workflows | intentionally out of scope here |
Behavior Boundary
- Metadata constructors, inspection helpers, and topology predicates work.
- Backend-backed operations such as contraction, dense materialization, and transforms deliberately throw
SkeletonNotImplemented. - Importing
Tensor4all.jldoes not require a compiledtensor4all-rsbackend.
Ownership and Re-Export
tensor4all-rsowns kernels, storage, and numerically heavy backend behavior.Tensor4all.jlowns Julia-side wrappers, TreeTN-general abstractions, local quantics transforms, QTCI placeholders, and compatibility extensions.QuanticsGrids.jlowns quantics grid semantics and coordinate conversion.Tensor4all.jlre-exports a curatedQuanticsGrids.jlsurface for usability, but that re-export does not change ownership.BubbleTeaCIremains the home ofTTFunctionand high-level function workflows, and should consume lower-level functionality fromTensor4all.jland adopted dependencies instead of duplicating it.
Review Questions Still Open
- Should
IndexandTensorgain explicit backend-handle behavior beyond the current nullable-handle skeleton fields before backend integration starts? - Is the current curated
QuanticsGrids.jlre-export scope broad enough for the first downstream consumers? - Is the downstream
BubbleTeaCIcontract explicit enough before migration begins? - Are the current public names good enough to freeze for backend implementation?