Welcome to kyla’s documentation!¶
kyla is an installation system designed to deploy large amounts data. The main features are:
- Speed: kyla uses fast compression algorithms, reads and writes files sequentially, and only fetches the data it absolutely needs.
- Scalability: Tens of thousands of files can be deployed easily. kyla also has first-class support for large binary files, splitting them up as necessary to provide streaming installations.
- Web-first: kyla can install directly from the internet, fetches only the minimum amount of data required, and installs during download to maximize bandwidth usage and minimize installation time.
- Feature-based installation: Deploy only subsets of your application, and support configure functionality.
- Upgrades, downgrades, configure: kyla can upgrade/downgrade your installation to another version and will only fetch changed contents. Upgrades, downgrads and configurations are handled through the same function.
- Library design: kyla is designed to be embedded into your frontend. It provides an easy-to-use C API and can be statically or dynamically linked.
- Reliability: It uses the SQLite storage engine for all metadata storage - one of the most robust databases in the world. Installations can be validated and repaired if they ever get corrupted.
kyla is not a full-fledged installer taking care of registry keys, registering services, or similar. It is designed to deploy and manage applications in a single folder. If you need additional pre/post install hooks, you can easily build them on top of kyla. For a comparison with existing tools, check out the Comparison with other tools.
kyla consists of three separate parts:
kcl, the kyla command line binary. It includes a command line front-end to the API, as well as access to the kyla build API.
kui, the kyla UI. This is a small UI which can perform an installation, up/downgrades, and configure operations.
pykyla, the kyla utility library. A Python module which facilitates the repository description creation.
libkyla, the core library which contains all processing logic.
libkylaprovides a C API for clients for integration.