O repositório principal do código-fonte da linguagem Rust, com o compilador, a biblioteca padrão e a documentação.
aardappel/goose
Uma linguagem experimental de programação de sistemas, sem alocador de heap nem coletor de lixo, que usa pilhas de dados gerenciadas pelo compilador para garantir a segurança da memória.
- Estrelas
- 3,146
- Forks
- 132
- Issues abertas
- 48
- Último commit
- ontem
O que é?
Goose é uma linguagem de programação com sintaxe parecida com C e Rust, mas sem heap. Todo valor dinâmico fica armazenado inline em pilhas de dados gerenciadas estaticamente pelo compilador: o crescimento avança um ponteiro, e a memória é liberada quando o escopo termina. Não há alocador, coletor de lixo, contagem de referências, destrutores, anotações de tempo de vida nem blocos unsafe.
A linguagem oferece arrays que só crescem e arrays que podem crescer e diminuir, cujas referências continuam válidas durante o crescimento; referências relativas armazenadas como offsets de 1, 2 ou 4 bytes; e enums que podem ser armazenados usando o tamanho de cada variante. As threads executam como programas separados, com memória própria, e trocam valores simples por meio de filas tipadas. O compilador gera um único arquivo C e pode chamar C diretamente usando extern fn, com um backend TinyCC incluído que executa programas no próprio processo.
O projeto inclui um tutorial, uma referência e uma especificação da linguagem, uma biblioteca padrão com módulos de gráficos, física e UI, trinta e um programas de exemplo e benchmarks comparativos com C++ e Rust. O autor observa que o repositório foi produzido em grande parte com assistência de IA, com base em um projeto de linguagem escrito por uma pessoa.
Recursos principais
- 01Memória gerenciada por pilhas de dados atribuídas pelo compilador, sem alocação no heap nem GC.
- 02Arrays que só crescem e cujas referências continuam válidas após o crescimento.
- 03Referências relativas armazenadas como offsets de 1, 2 ou 4 bytes, permitindo dados independentes de posição.
- 04Enums de tamanho variável e dados aninhados inline, sem ponteiros.
- 05Threads com memória separada que se comunicam por filas tipadas.
- 06Chamadas diretas a C usando extern fn e compilação para um único arquivo C.
Casos de uso
- Explorar modelos de memória para código de sistemas sem coletor de lixo nem liberação manual de memória.
- Escrever programas com muitos dados, como parsers ou estruturas de grafos, que se beneficiam de um layout inline.
- Estudar uma linguagem cujo compilador e cuja documentação foram desenvolvidos em grande parte com assistência de IA.
- Criar pequenos programas de gráficos ou física usando os módulos gfx e physics incluídos.
Antes de usar
- Os metadados descrevem essa linguagem como experimental, então ela pode sofrer alterações.
- É possível iterar sobre arrays de elementos de tamanho variável, mas não acessá-los diretamente por índice.
- O README visível não inclui comandos de instalação nem de execução, portanto as etapas de configuração não estão listadas aqui.
Em coleções
Tópicos
Perguntas frequentes
- O que é goose?
- Uma linguagem experimental de programação de sistemas, sem alocador de heap nem coletor de lixo, que usa pilhas de dados gerenciadas pelo compilador para garantir a segurança da memória. Goose é uma linguagem de programação com sintaxe parecida com C e Rust, mas sem heap. Todo valor dinâmico fica armazenado inline em pilhas de dados gerenciadas estaticamente pelo compilador: o crescimento avança um ponteiro, e a memória é liberada quando o escopo termina. Não há alocador, coletor de lixo, contagem de referências, destrutores, anotações de tempo de vida nem blocos unsafe.
- goose é gratuito? Qual é a licença?
- goose é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- goose ainda é mantido?
- Manutenção ativa. O último commit de goose foi em 6 de nov. de 2026.
- Para que posso usar goose?
- Explorar modelos de memória para código de sistemas sem coletor de lixo nem liberação manual de memória. Escrever programas com muitos dados, como parsers ou estruturas de grafos, que se beneficiam de um layout inline. Estudar uma linguagem cujo compilador e cuja documentação foram desenvolvidos em grande parte com assistência de IA. Criar pequenos programas de gráficos ou física usando os módulos gfx e physics incluídos.
- Onde consigo goose?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/aardappel/goose
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
A linguagem de programação Swift e seu compilador e toolchain: uma linguagem segura para a memória, de alto desempenho e com acesso direto a C e Objective-C.
Uma linguagem de programação compilada, simples e rápida, para criar software fácil de manter, sem dependências de bibliotecas e com tradução automática de C para V.
Odin é uma linguagem de programação de sistemas, de propósito geral e orientada a dados, apresentada como alternativa ao C e com uma biblioteca padrão integrada.
Uma implementação de C e C++ com segurança de memória, que compila código existente com poucas ou nenhuma alteração e transforma erros de memória em panics.
A linguagem de programação Go, open source e criada para desenvolver software simples, confiável e eficiente.