# i2 > The middleware toolbox ## Pages in this subsection - [i2](i2.html.md): Meta-programming tools to build declarative frameworks - [i2.base](i2.base.html.md): Tools to provide meta-interfaces (“mints”) of python objects. - [i2.castgraph](i2.castgraph.html.md): A lightweight transformation service for Python that solves the “stable role, - [i2.chain_map](i2.chain_map.html.md): Merge mappings - [i2.deco](i2.deco.html.md): Decorator tools - [i2.doc_mint](i2.doc_mint.html.md): Meta-interfaces - [i2.errors](i2.errors.html.md): Error objects - [i2.footprints](i2.footprints.html.md): Analyzing what attributes of an input object a function actually uses - [i2.io_trans](i2.io_trans.html.md): Tools to make input and output transforming decorators. - [i2.itypes](i2.itypes.html.md): | `dot_string_of_callable_typ`(typ) | A `inputs -> Callable -> output` string, wit... - [i2.key_path](i2.key_path.html.md): Flattening maps and manipulating key paths - [i2.multi_object](i2.multi_object.html.md): A few fundamental tools to operate on a fixed collection of objects (e.g. functions). - [i2.routing_forest](i2.routing_forest.html.md): Tools to specify functions through trees and forests. - [i2.signatures](i2.signatures.html.md): Signature calculus: Tools to make it easier to work with function’s signatures. - [i2.util](i2.util.html.md): Misc util objects - [i2.wrapper](i2.wrapper.html.md): A wrapper object and tools to work with it ## Optional - [Top-level llms.txt](../llms.txt): Complete documentation index.