
Secure by
compilation
Injection · personal data
missing capabilities
They fail the build, not production.
Try it in the playgroundEuropean. Cloud-native.
Verifiable all the way down.
curl -fsSL https://kern-lang.eu/install.sh | sh
fn main():
email = personal_data("marie@eu.org", "signup confirmation")
reply = llm_complete("mistral", email)
print(reply)
Injection · personal data
missing capabilities
They fail the build, not production.
Try it in the playground

Reproducible builds
a self-hosting compiler
The part you take on trust: 46,006 named lines of C, with a written ledger.
Read the source (opens in a new tab)Not a linter warning you can ignore. A build that does not pass.
fn send_email(user: User):
analytics.track(user.email.value)from db.postgres import pg_query_one
from std.cap_db import db_root
fn main():
db = db_root()
user_id = "42"
pg_query_one(db, 0, "SELECT name FROM users WHERE id = " + user_id)# Authority is explicit. Only main can mint it.
from std.cap_net import net_root, net_http_serve
fn main():
net = net_root()
# No cap, no IO. That is E0404.
net_http_serve(net, 8080)from std.cap_ai import ai_root, ai_complete
from std.untrusted import untrusted_validate_length
fn answer(ai: Cap<Ai>, question: str) -> Result<str>:
reply = ai_complete(ai, "mistral", question)
# Straight to a sink would be E0303.
return untrusted_validate_length(reply, 1, 4000)Personal data: tag a field as personal once and the compiler follows it into every sink.
Injection: this rule prevents SQL injection by construction.
Capabilities: authority is an argument you pass, so an audit reads the grants.
Model output: anything an LLM returns comes back marked untrusted.
No runtime to install, no container to build, nothing to configure.
$ curl -fsSL https://kern-lang.eu/install.sh | sh $ kern new api my-service && cd my-service $ kern run my-service listening on :8080 $ curl localhost:8080/health {"status": "ok"}
curl -fsSL https://kern-lang.eu/install.sh | shkern new api my-service && cd my-servicekern runmy-service listening on :8080kern is EUPL-licensed and community-funded. No venture capital, no US parent company, no strings. Contributions go directly to compiler and stdlib development.
3HcHaeq9gYrxxLqzbpBSuy3e6cGAw6GwZc