[ Features ]
Kinetics runs
all your backends
A local-first Rust serverless platform designed for backend workloads.
Unified Workloads
Deploy REST APIs, queue workers, and cron jobs with automatic infrastructure provisioning.
cloud
Local Rust Execution
Run and test everything locally, with databases and queues provisioned offline automatically.
Managed SQL
Every project comes with a provisioned SQL database, supporting migrations. Credentials and handled automatically on local and cloud execution.
Built-in Logs
Access per-function logs directly from the CLI.
Secrets
Secrets are automatically provisioned from .env.secrets and injected at runtime.
Environment Config
Define environment variables in code and update them in the cloud independently from function code.
[ How to start ]
Tap, tap, deploy!
Install kinetics with cargo and deploy your first app in seconds.
❯
[ Examples ]
Kinetics
in examples
All examples are available in our GitHub repository — just install kinetics, then run kinetics deploy to get started, or use kinetics invoke to call them locally. You can also find these examples added as tabs directly in our GitHub repository.
use ; use http::{Request, Response};
use kinetics::tools::config::Config as KineticsConfig;
use kinetics::{macros::endpoint, tools::http::Body};
use serde_json::json;
use std::collections::HashMap;
// As an example use a general-purpose type-erased error from tower.
// Custom errors would work as well.
use tower::BoxError;
/// REST API endpoint which responds with JSON {"success": true}
///
/// Test locally with the following command:
/// kinetics invoke BasicEndpointEndpoint
#[endpoint(url_path = "/endpoint")]
pub async fn endpoint(
_event: Request<Body>,
_secrets: &HashMap<String, String>,
_config: &KineticsConfig,
) -> Result<Response<String>, BoxError> {
let resp = Response::builder()
.status(200)
.header("content-type", "application/json")
.body(json!({"success": true}).to_string())?;
Ok(resp)
}