Um binário só
Sem instalar nada além do djo. A versão completa tem uns 11 MB; a nano, sem rede, só 3 MB.
Linguagem de programação
Sites, CMS e sistemas pequenos, num único binário sem dependências. Roda onde o Go compila: servidores, Raspberry Pi e outros dispositivos IoT.
struct Post{
id[Int] nocall
titulo[String]
publicado[Bool] = false
f link
return "/post?id=" + (str:self.id)
}
var p = Post:"Olá"
p.id = 7
print p.link: // /post?id=7
Sem instalar nada além do djo. A versão completa tem uns 11 MB; a nano, sem rede, só 3 MB.
Servidor, templates, rotas por arquivo ou em rotas.djo, sessões, proteção CSRF, senhas com PBKDF2 e upload.
Db é um SQLite dentro da linguagem. O banco é um arquivo, sem servidor para cuidar.
Campos tipados, composição, herança com sonof e interfaces satisfeitas por quem tem os métodos, como no Go.
Porta serial, Time.sleep e builds para ARM, MIPS e RISC-V. Leia um sensor e envie com Http.post.
Cada rota tem uma face de tela e outra de agente na mesma URL. action publica funções tipadas, e o servidor gera um manifesto com JSON Schema.
Uma chamada é nome:arg1:arg2. Blocos usam indentação ou chaves, e os dois valem em todo lugar. Pouca pontuação, poucas palavras reservadas.
Uma página pode devolver JSON em poucas linhas, sem framework.
// api.djo: uma página que responde JSON
if
cond[Http.method: == "POST"]
var d = Http.json:
Http.json:{"recebido": d["n"] + 1}:201
else
Http.json:{"erro": "use POST"}:405
# instalar (sem precisar de Go)
DJO_BASE_URL=<pasta do release> DJO_VERSION=v0.1.0 sh install.sh
# servir um site
djo serve -dev meusite
# empacotar num executável
djo build meusite
djo serve usa o mapeamento de URL para arquivo do PHP. djo build junta o seu site e o interpretador num executável que você copia para qualquer lugar.