REPL de C# multiplataforma para linha de comando, com realce de sintaxe, IntelliSense, instalação de pacotes NuGet e conexão a processos em execução.
Cysharp/ConsoleAppFramework
Um framework C# para CLI sem dependências e sem alocações, seguro para AOT, que gera código de parsing e roteamento em tempo de compilação por meio de um Source Generator.
- Estrelas
- 2,234
- Forks
- 130
- Issues abertas
- 2
- Último commit
- ontem
O que é?
ConsoleAppFramework é uma biblioteca C# para criar aplicações de linha de comando. Em vez de depender de atributos e reflexão em tempo de execução, analisa as expressões lambda ou os métodos passados para ConsoleApp.Run e gera o código de parsing de argumentos e despacho em tempo de compilação. Assim, a aplicação não tem dependências de execução do próprio framework, o que mantém o tamanho do assembly pequeno e garante compatibilidade com Native AOT.
O framework é voltado para .NET 8 com C# 13 e oferece suporte a comandos síncronos e assíncronos, comandos múltiplos e aninhados e aliases de comandos. Por padrão, os nomes das opções usam lower-kebab-case, e as descrições e os aliases das opções vêm dos comentários de documentação XML. A saída de ajuda e de versão é gerada como constantes de string.
Também inclui tratamento de Ctrl+C por meio de CancellationToken, pipelines de filtros (middleware), gerenciamento de código de saída, validação com DataAnnotations, injeção de dependência para classes de comandos, opções globais e parsing via ISpanParsable<T> ou JSON.
Recursos principais
- 01Gera código de parsing de argumentos e despacho de comandos em tempo de compilação, sem dependências em tempo de execução.
- 02Oferece suporte a Native AOT e evita reflexão e boxing.
- 03Trata Ctrl+C e SIGTERM por meio de CancellationToken para permitir um encerramento gracioso.
- 04Oferece pipelines de filtros (middleware) em torno da execução dos comandos.
- 05Gera o texto de ajuda a partir dos comentários de documentação XML, incluindo aliases das opções.
- 06Oferece suporte à validação com DataAnnotations e à injeção de dependência para classes de comandos.
Casos de uso
- Criar ferramentas de CLI pequenas e com inicialização rápida, que precisam ser publicadas como binários Native AOT.
- Organizar uma ferramenta de linha de comando .NET grande em comandos aninhados com injeção de dependência.
- Criar ferramentas internas no estilo batch que precisam cancelar tarefas longas com segurança ao pressionar Ctrl+C.
Início rápido
- 1
Adicione o pacote NuGet ao seu projeto
dotnet add package ConsoleAppFramework - 2
Chame ConsoleApp.Run em Program usando uma lambda ou um método
Antes de usar
- Requer .NET 8 ou posterior. Em projetos .NET 8, é necessário definir explicitamente a versão 13 da linguagem C#.
Em coleções
Tópicos
Perguntas frequentes
- O que é ConsoleAppFramework?
- Um framework C# para CLI sem dependências e sem alocações, seguro para AOT, que gera código de parsing e roteamento em tempo de compilação por meio de um Source Generator. ConsoleAppFramework é uma biblioteca C# para criar aplicações de linha de comando. Em vez de depender de atributos e reflexão em tempo de execução, analisa as expressões lambda ou os métodos passados para ConsoleApp.Run e gera o código de parsing de argumentos e despacho em tempo de compilação. Assim, a aplicação não tem dependências de execução do próprio framework, o que mantém o tamanho do assembly pequeno e garante compatibilidade com Native AOT.
- ConsoleAppFramework é gratuito? Qual é a licença?
- ConsoleAppFramework é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- ConsoleAppFramework ainda é mantido?
- Manutenção ativa. O último commit de ConsoleAppFramework foi em 6 de nov. de 2026.
- Para que posso usar ConsoleAppFramework?
- Criar ferramentas de CLI pequenas e com inicialização rápida, que precisam ser publicadas como binários Native AOT. Organizar uma ferramenta de linha de comando .NET grande em comandos aninhados com injeção de dependência. Criar ferramentas internas no estilo batch que precisam cancelar tarefas longas com segurança ao pressionar Ctrl+C.
- Como instalar ConsoleAppFramework?
- Adicione o pacote NuGet ao seu projeto: dotnet add package ConsoleAppFramework Chame ConsoleApp.Run em Program usando uma lambda ou um método
- Onde consigo ConsoleAppFramework?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/Cysharp/ConsoleAppFramework
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Logger de texto e estruturado com zero alocações para .NET e Unity, baseado em Microsoft.Extensions.Logging e com saída UTF8.
Compilador de C# e .NET CIL para WebAssembly, com CoreLib, runtime e SDK próprios, que gera componentes WASI Preview 2 autônomos e compactos.
Uma biblioteca YAML 1.2 de alto desempenho e baixa alocação para C# com foco em .NET e Unity, com serialização gerada pelo source generator.
Biblioteca .NET para iniciar processos de linha de comando com configuração fluente, redirecionamento de stdin/stdout/stderr e cancelamento assíncrono.
FreeSql é um ORM para .NET com suporte a AOT, migrações code-first e diversos bancos de dados, incluindo MySQL, PostgreSQL, SQL Server, Oracle, SQLite e vários bancos chineses.