Repolode
gepheum

gepheum/skir

Uma linguagem declarativa de schemas que gera modelos de dados type-safe e código RPC para TypeScript, Python, Java, Go, C++ e outras linguagens a partir de um único arquivo .skir.

Alternativa open source a:Protocol Buffers

Estrelas
316
Forks
10
Issues abertas
1
Último commit
há 17 dias

O que é?

Skir é uma linguagem de schemas para definir tipos de dados e APIs em um único arquivo .skir. Um gerador de linha de comando transforma essas definições em código nativo para TypeScript, Python, Java, Go, C++, Rust, Kotlin, Swift e várias outras linguagens, permitindo que cliente e servidor compartilhem o mesmo contrato.

Os tipos gerados são profundamente imutáveis, e todos os campos precisam ser informados na construção. O projeto oferece sum types com variantes constantes ou tipadas, arrays indexados por chave com APIs de busca e três modos de serialização: JSON compacto, JSON legível e binário. Também inclui verificações de evolução de schema para que dados antigos continuem desserializáveis à medida que as definições mudam.

Para serviços, Skir oferece o SkirRPC, uma camada leve de RPC sobre HTTP com um app Studio integrado para consultar e testar métodos. Também é possível importar tipos diretamente de repositórios do GitHub, e uma extensão do VS Code com language server adiciona validação, autocompletar e formatação.

Recursos principais

  • 01Gera código type-safe para mais de 10 linguagens a partir de um único arquivo de schema.
  • 02Gera tipos profundamente imutáveis, com todos os campos obrigatórios na construção.
  • 03Oferece sum types com variantes constantes ou tipadas.
  • 04Oferece serialização em JSON compacto, JSON legível e binário.
  • 05Inclui o SkirRPC, uma camada de RPC sobre HTTP com o Studio integrado para testar métodos.
  • 06Permite importar tipos de repositórios do GitHub.

Casos de uso

  • Compartilhar tipos de requisição e resposta entre um frontend em TypeScript e um backend em Python ou Go.
  • Substituir definições de Protocol Buffers por uma linguagem de schemas com sum types e arrays indexados por chave.
  • Definir APIs tipadas que precisam de uma camada de RPC sobre HTTP e de uma interface de teste navegável.
  • Compartilhar estruturas de dados entre vários projetos por meio de imports do GitHub.

Início rápido

  1. 1

    Abra o guia de introdução para consultar a configuração e o fluxo de trabalho

  2. 2

    Escreva um arquivo de esquema .skir e gere código para a linguagem de destino

Antes de usar

  • O gerador de Elixir é mantido pela comunidade, não oficialmente.

Tópicos

Perguntas frequentes

O que é skir?
Uma linguagem declarativa de schemas que gera modelos de dados type-safe e código RPC para TypeScript, Python, Java, Go, C++ e outras linguagens a partir de um único arquivo .skir. Skir é uma linguagem de schemas para definir tipos de dados e APIs em um único arquivo .skir. Um gerador de linha de comando transforma essas definições em código nativo para TypeScript, Python, Java, Go, C++, Rust, Kotlin, Swift e várias outras linguagens, permitindo que cliente e servidor compartilhem o mesmo contrato.
skir é gratuito? Qual é a licença?
skir é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
skir ainda é mantido?
Manutenção ativa. O último commit de skir foi em 6 de out. de 2026.
Para que posso usar skir?
Compartilhar tipos de requisição e resposta entre um frontend em TypeScript e um backend em Python ou Go. Substituir definições de Protocol Buffers por uma linguagem de schemas com sum types e arrays indexados por chave. Definir APIs tipadas que precisam de uma camada de RPC sobre HTTP e de uma interface de teste navegável. Compartilhar estruturas de dados entre vários projetos por meio de imports do GitHub.
Como instalar skir?
Abra o guia de introdução para consultar a configuração e o fluxo de trabalho Escreva um arquivo de esquema .skir e gere código para a linguagem de destino
Onde consigo skir?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/gepheum/skir

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados