Hew
Uma linguagem que espera falhas.
Hew compila programas baseados em actors para código nativo. Cada actor possui seu estado, e supervisors decidem como actors que falharam reiniciam.
O estado fica com o actor
Este actor de sessão possui seu vector de mensagens. post é o único código que o modifica, e cada chamada espera o handler terminar antes de retornar um Result.
count lê o mesmo estado privado e retorna o valor ao caller. O ramo de erro continua visível porque o actor pode ter parado antes da chamada terminar.
// A chat session is an actor: state lives in fields and only its handlers
// can mutate it. Ordinary actor calls wait for the handler and return a
// Result, whether or not the handler itself returns a value.
actor Session {
let user: string;
var messages: Vec<string> = Vec.new();
receive fn post(text: string) {
messages.push(text);
}
receive fn count() -> i64 {
messages.len()
}
}
fn main() {
let chat = spawn Session { user: "ada", messages: [] };
chat.post("hello").expect("actor stopped");
chat.post("world").expect("actor stopped");
let total = chat.count();
match total {
.Ok(n) => println(f"{n} messages posted"),
.Err(_) => println("session unavailable"),
}
}Instalar Hew
Escolha o sistema operacional e a versão do compilador.
v0.9.3 · Versão
$ curl -fsSL https://hew.sh/install | bash -s -- --version 0.9.3$ curl -fsSL https://hew.sh/install | bash -s -- --version 0.9.3> Invoke-WebRequest https://hew.sh/install.ps1 -OutFile install.ps1
.\install.ps1 -Version 0.9.3O que a linguagem torna explícito
As superfícies de actors, supervisão, concorrência e wire disponíveis na v0.9.3.
- Chamador:
chat.post("hello"). Aguarda o resultado do handler. - Caixa de mensagens:
post("hello"). - Um turno do handler:
messages.push(text). Estado privado:messages: ["hello"]. - Resultado da chamada → Chamador.
Uma chamada post bem-sucedida atualiza o estado privado de Session antes de retornar seu resultado.
Isolamento por actors
Cada actor possui seu estado de forma exclusiva. O compilador aplica limites locais de actors e verificações Send.
Árvores de supervisão
Serviços caem — Hew espera isso. Actors supervisors, orçamentos de reinício e as estratégias centrais de reinício fazem parte da linguagem, não de um framework separado.
Concorrência estruturada
Um scope limita o trabalho filho e espera por ele antes de retornar; fork inicia chamadas independentes que podem ser reunidas depois.
Contratos Wire
Wire types colocam schema, tags de campos e verificações de compatibilidade na linguagem, ao lado dos actors que os enviam.
Diário de engenharia
Hew 0.6.2: safer values, steadier services Edit parsed configuration without changing its source value, then see how Hew 0.6.2 carries the same actor reference across local and remote services. 21 de out. de 2026Ler o blog → EN
Hew Notes
Language development, engineering articles, releases and community projects. About once a month, with an extra issue for a significant release. Written in English.
Subscribe to Hew Notes