Klotho is an open source tool that transforms plain code into cloud native code.
Klotho allows you to quickly and reliably add cloud functionality to your application with minimal modification to your code. In most cases, this is just a handful of klotho annotations.
It adds 3 main in-code cloud capabilities:
expose
web APIs to the Internetpersist
multi-modal data into different types of databasesstatic_unit
package static assets and upload into a CDN for distribution
- Why?
- Adaptive Architectures
- Infrastructure-from-Code
- Installation
- IDE Plugins & Extensions
- Getting Started
- Example usage
- Additional Resources
- Language Support
- Cloud Providers
- Developing
Klotho is designed to absorb the complexity of building cloud applications, enabling everyone in large-scale organizations and teams to hobbyist developers to write and operate cloud applications at a fraction of the effort.
Its design principles are an outcome of industry collaborations focused on mid-sized companies and fast growing startups.
Klotho builds on a new architecture called Adaptive Architecutes.
It's a superset of monoliths, microservices and serverless architectures, combining their benefits like a stellar developer experience, immediate productivity, scalability and autonomy of development and deployment as well as a spectrum of NoOps to FullOps. It also introduces a host of new capabilities that have been out of reach do to their implementation complexity.
Klotho is part of a new generation of cloud tools that implements Infrastructure-from-Code (IfC), a process to automatically create, configure and manage cloud resources from the existing software application's source code without having describe it explicitly.
By annotating the clients, SDKs or language constructs used in the code with Klotho capabilities, they are automatically created, updated and wired into the application.
Exposing a Python FastAPI to the internet with the Klotho klotho::expose
capability. View for NodeJS, Go
Persisting Redis and TypeORM instances in NodeJS with the the Klotho klotho::persist
capability. View for Python, Go (soon)
Klotho ensures that developers/operators are able to select and adapt the underlying technologies even after their initial setup.
To install the latest Klotho release, run the following (see full installation instructions for additional installation options):
Mac:
brew install klothoplatform/tap/klotho
Linux/WSL2:
curl -fsSL "https://github.com/klothoplatform/klotho/releases/latest/download/klotho_linux_amd64" -o klotho
chmod +x klotho
Get syntax highlighting and snippets for Klotho annotations in your favorite IDE.
- Visual Studio Code
- Intellij IDEA (coming soon)
The quickest way to get started is with the getting started tutorial for Javascript/Typescript, Python and Go (soon).
Clone our sample apps git repo and install the npm packages for the js-my-first-app app:
git clone https://github.com/KlothoPlatform/sample-apps.git
cd sample-apps/js-my-first-app
npm install
First log in to Klotho. This shares telemetry data for compiler improvements:
klotho --login <email>