v0.6.0em desenvolvimento ativoGPLv3
KofUma linguagem. Um compilador. Vários mundos.
Menos código. Mais intenção. Uma linguagem moderna, estaticamente tipada, que compila direto para JVM, binário nativo e web.
record User(String name, String email)sealed class Shapeclass Circle extends Shape { Int r public constructor(Int r) { this.r = r }}class Square extends Shape { Int side public constructor(Int side) { this.side = side }}String describe(Shape s) { return switch (s) { case Circle c -> "circle" case Square q -> "square" }}main() { var user = User("Mel", "mel@example.com") println(user.name()) println(describe(Circle(2)))}$ kof run user.kf$ kof build user.kf --target nativeKof é uma linguagem geral, fortemente tipada e estaticamente tipada, criada para reduzir drasticamente a complexidade necessária para construir software moderno.
Compilador próprio: lexer, parser, AST, sistema de tipos, análise semântica, resolução de símbolos, IR própria, múltiplos backends, runtime e biblioteca padrão em evolução.
Fonte Kof
↓
Compilador Kof
↓
Kof IR
↓
┌───┼───────────┬───────────┐
↓ ↓ ↓ ↓
JVM Native Script Web
A linguagem não muda quando o target muda.Kof não é um transpiler.
Não existe uma etapa em que Kof vira Java e depois pede ajuda ao javac. O compilador possui frontend, sistema de tipos, IR e backends próprios — e gera bytecode e código nativo diretamente.
Kof → Java → javac → JVM
Kof ↓ Compilador Kof ↓ Kof IR ↓ Backend ↓ Target
O problema não é programação. É a quantidade de coisas que precisamos fazer para programar.
HTTP ↓ framework ↓ controllers ↓ services ↓ repositories ↓ ORM ↓ DTOs ↓ serializers ↓ injeção de dependência ↓ configuração ↓ bibliotecas de mensageria ↓ APIs assíncronas ↓ boilerplate
intenção ↓ Kof ↓ compilador + runtime + stdlib ↓ software
Complexidade deve ser resolvida pela linguagem quando puder ser resolvida pela linguagem.
A filosofia Kof
Menos código
Tipagem forte
Humano primeiro
Um frontend
Compilação direta
Complexidade pertence à plataforma
Sem mágica desnecessária
Boilerplate não é uma feature.
Kof é projetada primeiro para seres humanos. A sintaxe deve representar intenção: se o compilador entende sem vinte linhas de cerimônia, vinte linhas de cerimônia não deveriam existir.
Cerimônia tradicional
public final class User { private final String name; private final String email; public User(String name, String email) { this.name = name; this.email = email; } public String name() { return name; } public String email() { return email; }}Intenção
class User( String name, String email)Menos código não significa menos capacidade.
Feita para humanos. Naturalmente amigável às máquinas.
Kof não é uma “AI language”. A filosofia continua humana primeiro. Mas sintaxe pequena, semântica explícita, baixo boilerplate, APIs padronizadas e documentação estruturada têm uma consequência importante: a linguagem também fica muito mais fácil de compreender por ferramentas automatizadas e modelos de linguagem.
training/ ├── language/ ├── reference/ ├── patterns/ ├── anti-patterns/ ├── migration/ └── examples/
Corpus oficial para ferramentas
Menos tokens para expressar a mesma intenção.
Uma linguagem. Vários mundos.
O mesmo frontend alimenta todos os backends. Targets em desenvolvimento estão explicitamente marcados como tal.
JVM
DisponívelKof ↓ Kof IR ↓ bytecode JVM ↓ JVM
Integração com o ecossistema Java e execução na JVM (bytecode V21 via ASM). O backend gera bytecode diretamente — Java é plataforma, não linguagem intermediária. Android é variante deste backend (--target android + --apk).
Native (x86_64)
DisponívelKof ↓ Kof IR ↓ Backend nativo (x86_64) ↓ Executável ELF
Binários ELF sem exigir que o programador gerencie memória manualmente. GC free-list + mark-sweep real (kof_gc_collect) com auto-collect ligado; runtime podado por alcançabilidade — hello em 32.5KB; FFI com callbacks nativos por trampoline gerado.
Native (RISC-V/ARM64)
DisponívelKof ↓ Kof IR ↓ Backend nativo (riscv64/aarch64) ↓ ELF (qemu)
Targets nativos riscv64 (native.risc) e aarch64 (native.arm) — codegen real em asm puro + qemu. Stdlib JSON, HTTP, spawn/await, String, io, db/orm (SQLite), GC/dtoa/canais (19/19 qemu); três defeitos de reclaim do GC cross corrigidos 11/10 (§602); callbacks FFI cross via trampoline (M1 completa). kof.media é JVM-only (MEDIA001/003 nomeados no cross).
KofScript
DisponívelKof (.ks) ↓ Kof IR (MESMO frontend) ↓ KofInterpreter (sem bytecode)
Target de execução direta: Kof puro no MESMO frontend, executado pelo interpretador da IR (KofInterpreter) sem compilar e sem fork de JVM. Não é JavaScript — let/const/async/fn não existem.
Web — KofJS
DisponívelKof ↓ KofJS ↓ JavaScript (GraalJS)
O mesmo frontend e a mesma Kof IR geram ES Modules (ECMAScript 2022+) executados na engine JS embarcada (GraalJS). Concorrência real via async/await (CONC003), kof.http com fetch async real (spawn + await), servidor web embutido (HttpServer GraalJS + KofJsWebQueue), Long como BigInt.
Android
DisponívelKof ↓ Kof IR ↓ JvmBackend (release 21) ↓ APK
Variante do backend JVM: kof build --target android gera projeto com host em Kof; --apk standalone (aapt2/d8/zipalign/apksigner direto da CLI) + release signing. spawn usa platform threads (ART sem virtual threads — AND001 fechado); a UI roda no WebView KofJS.
KofC
DisponívelC subset (.c) ↓ KofC compiler ↓ ELF x86_64
Subset C (int globals, void funcs, if/while, deref &/*) → ELF x86_64/riscv64/aarch64 via kof c (C1–C4 cross).
Você escreve código. O runtime cuida da memória.
O código Kof não muda porque o target mudou. Nada de malloc, free, ponteiros ou lifetimes manuais. A JVM usa o GC da JVM; Native tem gerenciamento próprio (free-list + mark-sweep + auto-collect). A abstração de memória pertence à plataforma, não ao usuário.
class User( String name)main() { var user = User("Mel") println(user.name)}E se construir software não exigisse um ecossistema inteiro de cerimônia?
HTTP, JSON, banco, concorrência, async, mensageria, rede, testes, serialização, coleções, filesystem, tempo e segurança devem caminhar para dentro da biblioteca padrão e do runtime da Kof. Com etiquetas honestas do que já existe.
Disponível indica capacidade já utilizável — hoje a maior parte com paridade JVM, Native e JS. Gaps por target são diagnosticados em compile-time com códigos como CONC001 — nunca silenciosamente.
Ver a biblioteca padrão →o motivo de tudo isso
Quero que programar seja divertido de novo.
Em algum lugar entre o problema e a solução, a diversão se perdeu, trocada por configuração, camadas e cerimônia. A Kof existe para devolver isso: o prazer de escrever uma ideia e vê-la rodar de verdade.
Porque cerimônia cansa.
Porque intenção flui.
Porque confiança liberta.
Porque mágica boa não esconde poder.
Construa uma aplicação web sem construir antes um ecossistema de frameworks.
kof.web já existe na JVM: rotas, middleware, JSON tipado e servidor HTTP embutido no runtime — sem Spring, sem servlet container, sem annotations.
record User(String name, Int age)main() { var app = web.app() app.get("/hello") { return "Hello from Kof" } app.get("/users/:id") { return "user " + param("id") } app.post("/user") { var user = json.decode<User>(body()) return json.encode(user) } app.listen(8080)}Aplicação Kof
│
├── HTTP ✅ disponível
├── JSON ✅ disponível
├── Database ✅ disponível
├── Autenticação ✅ disponível (app.security + OAuth2)
├── Mensageria ✅ disponível
├── Supervisão OTP ✅ disponível (JVM+Script+todos os Native)
├── Async ✅ disponível (spawn/await/selectAny/channels)
└── Concorrência ✅ disponível (spawn/await nos 4 targets)$ kof serve app.kf$ kof serve app.kf --port 8080O objetivo de longo prazo — frontend, backend, banco, autenticação, mensageria e async com pouquíssimos arquivos de negócio — segue em evolução. O que já existe: HTTP, JSON, banco, mensageria, segurança web (app.security + OAuth2 resource server), supervisão OTP e o servidor embutido — agora também no KofJS via GraalJS HttpServer.
A visão da plataforma web →Não queremos substituir o Spring por outro Spring.
Kof não quer criar um "Kof Spring". Nem um "Kof Hibernate". Nem uma camada de abstração em cima de outra camada de abstração. A pergunta é: por que essa complexidade precisa existir em primeiro lugar?
Spring Hibernate ORM DI AOP Controllers Repositories DTOs Configuração ...
Kof Compilador Runtime Biblioteca padrão
O objetivo não é remover capacidade. É remover cerimônia.
Um frontend. Uma IR. Backends dedicados.
O frontend é único: lexer, parser, tipos, semântica e IR. A partir da IR, cada backend realiza a mesma semântica no seu mundo.
fonte
Código Kof (.kf)
frontend único
Compilador Kof → AST → tipos → IR
representação
Kof IR
Backend JVM
Disponível↓ .class
↓ JVM
Backend nativo (x86_64)
Disponível↓ ELF
↓ OS/CPU
Backend nativo (riscv64/aarch64)
Disponível↓ ELF estático
↓ OS/CPU
KofScript
Disponível↓ KofInterpreter (IR)
↓ Execução direta (sem compilar)
KofJS
Disponível↓ ES Modules
↓ JS engine / Browser
Android
Disponível↓ APK
↓ ART (variante JVM)
KofC
Disponível↓ ELF
↓ OS/CPU (C subset)
Uma linguagem deve vir com as suas ferramentas.
Compilador, CLI, LSP, testes, debugger, benchmarks, formatador, empacotador e editor acompanham a linguagem. O gerenciador de pacotes já é MVP (kof deps); o registry completo ainda é futuro.
$ kof build$ kof run$ kof serve$ kof deploy$ kof check$ kof test$ kof debug$ kof bench$ kof profile$ kof inspect$ kof decompile$ kof translate$ kof compare$ kof migrate$ kof fmt$ kof new$ kof init$ kof deps$ kof config$ kof editor$ kof info$ kof lsp$ kof install$ kof script$ kof repl$ kof c$ kof versionCompilador
DisponívelCLI
DisponívelLSP
DisponívelTestes (kof test)
DisponívelDebugger (kof debug)
Em desenvolvimentoBenchmarks (kof bench)
DisponívelProfile (kof profile)
DisponívelInspect IR (kof inspect)
DisponívelFormatador (kof fmt)
DisponívelGerenciador de pacotes (MVP)
Disponível
Instale o Kof. Só isso.
Uma distribuição autocontida: compilador, CLI, runtime, biblioteca padrão, ferramentas, suporte a editores e OpenJDK embutido. Sem instalar Java separadamente.
Duas trilhas na doc. E um curso completo.
Curso gratuito completo →
Do zero ao avançado: algoritmos, estruturas de dados, banco, segurança, web e mais — tudo em Kof, de graça, pesquisável aqui no site.
koflang.github.io/learnlearn/ → humanos aprendendo Kof
training/ → ferramentas e LLMs aprendendo Kof
Sem datas falsas. Apenas estado.
O roadmap mostra o que existe, o que está sendo construído e para onde vamos — alimentado pelo estado real do repositório. Versionamento MAJOR.MINOR.PATCH; a 0.1.0 saiu 25/08, a 0.2.0-beta 27/08, a 0.4.0-beta 14/09, a 0.5.0-beta mergeada em main (27/09) e a 0.6.0 é release oficial desde 11/10 — com o auto-cascade por commit avaliando lab→testing→stable.
Concluído (0.6.0)
Disponível- Base do compilador: lexer, parser, AST, sistema de tipos, análise semântica e Kof IR
- Backends JVM, Native (x86_64 free-list GC + mark-sweep) e KofJS
- Classes, records, herança, interfaces, generics e lambdas com capturas
- Exceções reais e coleções com Map/Set nos três targets
- enum com == por conteúdo e switch exaustivo (SEM031); switch-expressão (SYN001) nos 3 targets
- kof build / run / serve / test / debug / bench / profile / inspect / fmt
- kof.web: status/headerSet, WebSocket RFC 6455, SSE nativo, accept loop HTTP/1.1
- kof.db + kof.orm com Query DSL tipada e transaction commit/rollback real
- kof.mq (pub/sub nos 3 targets) e cliente HTTP (JVM + JS + Native)
- kof.security v1 + web security (rate limit, sessões, API keys) nos três targets
- TLS via web.listenSecure na JVM
- kof.validation e kof.observability (histogram/metrics no Native) nos três targets
- kof.ui e pattern matching (case String s, Point(x,y), instanceof)
- null safety String?/Int? e List map/filter/reduce
- imports multi-arquivo, KofScript (repl, watch) e KofCcompiler
- targets native.risc / native.arm com codegen real e stdlib (19/19 qemu)
- process.run / process.spawn (stdout vivo: readLine/exitCode/kill; stdin /dev/null — write é no-op honesto)
- kof fmt com parser real, idempotente; sobrecarga de construtores e widening de return
- kof.config com interpolação de ${key} nos 3 targets; lifecycle application
- W3C spans, kof.log no JS (LOG001) e time no Native (TIME001)
- package manager MVP (kof deps) e MySQL prepared statements binário
- concorrência real no JS (CONC003) e ponto flutuante no Native (FLT001)
- LSP references + rename e releases multiplataforma single-job
- kof.strings / encoding / random / validation / time / net / math / uuid (v4 + v7)
- arrays multidimensionais e kof.media (Image/Audio/Mic/Video + serveDir com Range)
- kof.supervisor (OTP core: JVM + Script + todos os Native + JS)
- web server no KofJS (HttpServer GraalJS + fetch async)
- app.security() + OAuth2 resource server (JVM)
- overloading top-level e de método (4 backends); Long como BigInt no JS
- GC mark-sweep no Native + runtime pruning (hello x86 32.5KB)
- kof new + kof build --fat (suite 5876 testes no CI)
- DB: SQLite em todos os targets (cross fechado 15/09), MySQL/MariaDB wire em JVM + Native x86-64 e ORM cross — MongoDB real só JVM/Android (DB001 honesto no JS/Native) (0.5.0)
- motores interop KofPy/KofR + timeout/cancel (JVM/x86/JS/Script/cross) (0.5.0)
- memory-safety: ownership pass + O-03 clear-null; Kofmd + kof md check/format (0.5.0)
- secrets + makealive; LSP 32 namespaces; FFI structs ABI + callbacks JS (0.5.0)
- supervisor OTP em todos os Native; multiarch GC/dtoa/canais/io/ssh/time/pow (0.5.0)
- tree-shaking + registry + workflow runner + debug info DWARF cross (0.5.0)
- GC auto-collect no Native (§260 G-6a) (0.5.0)
- sealed + switch exaustivo (SEM080/SEM081); variância out/in + projeção use-site (SEM082) (0.6.0)
- reflexão de fronteira interop.schema(R) — intrínseco compile-time, 4 targets (0.6.0)
- memory-safety M1 completa: callbacks FFI no Native x86-64 e cross riscv64/aarch64 via trampoline (0.6.0)
- GC cross riscv64/aarch64 corrigido (§602); math.pi()/e()/tau() fold para literal (0.6.0)
- kof.ui accessibility — superfície intent-based + defaults automáticos por widget (0.6.0)
- 0.6.0 finalizada, mergeada em main e lançada nas 4 plataformas (11/10)
Em desenvolvimento
Em desenvolvimento- package registry além do MVP
- LSP além do MVP
- debugger além do MVP JVM (DWARF Native, source maps JS)
- KofJS plataforma web no browser
- web no Native/JS residual (TLS/ws/sse — WEB002 / WEB001)
- FFI: callback com retorno String (FFI001) e structs variadic/opaque
- WASM/WASI (lane em desenvolvimento — plano em docs/wasm-wasi-plan.md)
Planejado
Planejado- KofScript — REPL e watch já via KofInterpreter; runtime dedicado é o próprio interpreter
- Language Reference já em docs/language-reference/ (evoluindo)
- conformance suite — embrião E2E
- full web platform e auto-hospedagem
- MCU / riscv32 (gaps honestos nomeados)
origem
Algumas pessoas criam uma biblioteca. Outras criam um framework. A gente olhou para o ecossistema inteiro e pensou:“Tá tudo complicado demais. Vou criar uma linguagem.”
Compilador open source. Seu software é seu.
O código-fonte da Kof é GPLv3. Programas escritos em Kof não são automaticamente GPLv3: você mantém o direito de escolher a licença do seu software, respeitando as licenças das dependências que efetivamente incorporar.
Números reais, ou nenhum número.
- Estrelas
- —
- Forks
- —
- Issues abertas
- —
- Último push
- —
Dados lidos ao vivo da API pública do GitHub (KofLang/Kof4j).
Estamos construindo uma linguagem de verdade.
Mostramos o que existe, o que está sendo construído e para onde estamos indo. Se você quer compilar, rodar e acompanhar de perto:
