Source on Codeberg (opens in a new tab)

Zero to a service
that answers.

No runtime to install, no container to build, nothing to configure. One binary in, one binary out.

$ 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"}
$

That is a real HTTP service.

Not a hello stub. It compiles to a native binary of about 115 KB that you can copy to a scratch container or a bare VM and run. There is no interpreter, no VM, and no node_modules.

Read “Try kern in five minutes”

Then the part
people re-read.

In kern these are compile errors: they cannot reach production, cannot be suppressed in a hurry, and cannot survive a distracted code review.

  • E0300

    A query built from user input does not compile.

    The same rule covers shell, URL, regex and template strings.

  • E0302

    Personal data reaching the wrong place does not compile.

    Tag a field as personal once and the compiler follows it into every sink.

  • E0303

    Model output reaching a sink does not compile.

    Anything an LLM returns comes back marked untrusted.

  • E0404

    A module without authority cannot open a socket.

    Authority is an argument you pass, so an audit reads the grants.