Source on Codeberg (opens in a new tab)

kern is a backend language that refuses to compile security bugs.

European. Cloud-native.
Verifiable all the way down.

curl -fsSL https://kern-lang.eu/install.sh | sh
main.kern
fn main():
    email = personal_data("marie@eu.org", "signup confirmation")
    reply = llm_complete("mistral", email)
    print(reply)
$ kern build main.kern
error[E0302]: PersonalData<T> cannot be passed to 'llm_complete'
— use pd_anonymize() or pd_access() with explicit reason first

Mistakes stop
at the compiler.

Not a linter warning you can ignore. A build that does not pass.

fn send_email(user: User):
    analytics.track(user.email.value)
$ kern build main.kern
error[E0302]: PersonalData<str> cannot reach a sink that does not declare PersonalData

Personal data: tag a field as personal once and the compiler follows it into every sink.

tests, 100% pass
2,241
stdlib modules
435
compiler files bootstrap
13/13
US dependencies
0

A running service
in three commands.

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"}
  1. Install

    curl -fsSL https://kern-lang.eu/install.sh | sh
  2. Create a service

    kern new api my-service && cd my-service
  3. Run it

    kern runmy-service listening on :8080

Keep it independent

kern is EUPL-licensed and community-funded. No venture capital, no US parent company, no strings. Contributions go directly to compiler and stdlib development.

BTC3HcHaeq9gYrxxLqzbpBSuy3e6cGAw6GwZc