Janus roda modelos GGUF via Vulkan em GPUs AMD, Intel e Nvidia sem CUDA
Projeto open-source em Go publicado como Show HN usa o backend Vulkan do llama.cpp para rodar modelos GGUF localmente em qualquer GPU, com API compatível com OpenAI e sem precisar de Python, Docker ou Ollama.

O que é o Janus
Janus é um projeto open-source publicado no Hacker News como Show HN pelo desenvolvedor por trás do repositório Vibra-Ingenn/Janus, no GitHub. A proposta é direta: um único binário escrito em Go↳Go23 conteúdosEntendendo o Green Tea GC do Go 1.26Dev (Back & Front) · mai 2026Função recursiva em Go para acessar valores em mapas aninhadosDev (Back & Front) · set 2025Publicando projeto desenvolvido em Golang em um server grátisDev (Back & Front) · mar 2025Ver tudo em Dev (Back & Front) → que carrega modelos no formato .gguf (o formato usado pelo llama.cpp) e expõe uma API compatível com a da OpenAI, rodando inteiramente na máquina do usuário.

Não precisa de Python, de Docker↳Docker46 conteúdosE o Docker Swarm? Contextos e motivadores diáriosDevSecOps · ago 2024Automatizando o ambiente de desenvolvimento e testes com DockerDevSecOps · mai 2019MySQL + Adminer + Docker Compose: montando rapidamente um ambiente para usoData · abr 2019Ver tudo em DevSecOps → nem de Ollama instalado. O repositório tem licença MIT, dois commits de histórico e 13 estrelas até a publicação deste texto: um projeto recém-saído do forno, não uma ferramenta madura com anos de adoção.
Entre os recursos listados no README estão troca de modelo sem reiniciar o servidor (/models/load), suporte ao padrão de modelos "thinking" (que separam o raciocínio em <think> do conteúdo da resposta) e detecção automática do template de chat a partir dos metadados do próprio arquivo GGUF.
O diferencial: Vulkan em vez de CUDA
A maioria das ferramentas de inferência local que rodam em GPU depende de CUDA, o que na prática restringe a aceleração por hardware a placas Nvidia. É o caso de boa parte do ecossistema de servidores de LLM↳LLMs48 conteúdosConsiderações básicas de hardware para modelos de linguagem em código aberto: Memória, Desempenho e ViabilidadeMarketing Tech · out 2025Modelos de linguagem sob ataque: o lado obscuro da IA generativaDevSecOps · mai 2025Criando um LLM – modelo de linguagem de grande escala – do zero com TransformersAI · abr 2024Ver tudo em AI → local que usam bindings diretos para CUDA ou ROCm separados por fabricante.
O Janus usa o backend Vulkan do llama.cpp. Vulkan é uma API gráfica e de computação multiplataforma mantida pelo Khronos Group, com drivers para GPUs AMD, Intel e Nvidia (incluindo integradas). Na prática, isso significa que o mesmo binário consegue acelerar inferência em notebooks com GPU Intel integrada, desktops com placa AMD ou máquinas com Nvidia, sem trocar de runtime.
Quando não há GPU compatível, o Janus cai para CPU. Em macOS o suporte a Vulkan "varia conforme o hardware", segundo o próprio README, e o caminho recomendado ali é o backend de CPU.
Como instalar e colocar pra rodar
No Windows, que o projeto trata como plataforma primária, o fluxo é clonar o repositório e rodar o script de build, que baixa as DLLs pré-compiladas do llama.cpp com suporte a Vulkan:
git clone https://github.com/Vibra-Ingenn/Janus.git
cd Janus
.\build.ps1Depois é preciso colocar um arquivo .gguf na pasta models/, seja baixando manualmente do Hugging Face ou usando o downloader incluso no próprio repositório, o modelget:
go build -o dist\modelget.exe .\cmd\modelget
.\dist\modelget.exe -repo meta-llama/Llama-3.2-3B-Instruct -file Llama-3.2-3B-Instruct-Q8_0.gguf -out .\models\A configuração fica em um arquivo .env, copiado do .env.example. As variáveis principais são INFERENCE_BACKEND (vulkan, cpu ou openrouter), JANUS_MODEL_PATH (caminho do .gguf) e JANUS_GPU_LAYERS, que por padrão vale -1 para jogar todas as camadas do modelo na GPU. Em Linux e macOS o processo é o go build padrão, com a ressalva de que o Linux precisa do libllama.so no mesmo diretório do binário ou no LD_LIBRARY_PATH.
Uma API que já fala a língua das suas ferramentas
O servidor sobe por padrão em 127.0.0.1:8990 (não na porta 8080, como o README avisa explicitamente) e expõe os seguintes caminhos:
| Método | Rota | Para quê serve |
|---|---|---|
| GET | /health | checagem de vida do processo |
| GET | /v1/models | lista de modelos no padrão OpenAI |
| POST | /v1/chat/completions | chat, com suporte a streaming |
| POST | /models/load | troca de modelo sem reiniciar |
| GET | /models/list | arquivos .gguf disponíveis localmente |
| GET | /engine/status | uso de VRAM e backend ativo |
Como a API segue o contrato da OpenAI, o mesmo endpoint serve para curl, scripts e para ferramentas como Cursor ou Cline, bastando apontar a base URL para http://127.0.0.1:8990/v1 e deixar o campo de chave de API em branco. Isso tira do caminho a etapa de reescrever integrações que já existem para a API da OpenAI só para testar um modelo local.
Hot-swap e modelos "thinking"
Trocar de modelo sem derrubar o servidor é uma necessidade concreta de quem testa vários .gguf no mesmo dia: hoje significa chamar /models/load com outro caminho de arquivo, em vez de matar o processo, editar o .env e subir de novo.
O suporte a modelos de raciocínio explícito, que emitem a etapa de pensamento entre tags <think>, é separado automaticamente pelo Janus em um campo reasoning_content da resposta, mantendo o conteúdo final isolado do raciocínio intermediário. É o mesmo tipo de separação que modelos como os da família DeepSeek-R1 popularizaram, e que ferramentas de chat precisam tratar de forma diferente do texto de resposta.
Janus x Ollama x servidor do llama.cpp
O nicho de "rodar GGUF localmente com API HTTP" já tem concorrência estabelecida: Ollama e o próprio servidor embutido do llama.cpp cobrem o mesmo caso de uso há mais tempo, com comunidades maiores e bibliotecas de modelos prontas para baixar com um comando.
A diferença de proposta do Janus está na simplicidade da distribuição (um único .exe no Windows, sem runtime externo) e na aposta específica em Vulkan como caminho de aceleração universal, em vez de depender de builds separados por fabricante de GPU. É uma leitura de posicionamento, não um dado do projeto: o README não traz benchmark comparando os três.
O que fica em aberto
O projeto não publica números de desempenho, nem comparação de velocidade entre o backend Vulkan e CUDA nativo para a mesma GPU Nvidia. Com 13 estrelas e dois commits de histórico no momento da publicação, também não há ainda releases etiquetados no GitHub, o que torna o uso em produção prematuro.
Para quem só quer testar modelos locais sem travar em driver CUDA, especialmente em máquina com GPU AMD ou Intel, o Janus é um caminho simples o bastante para rodar em uma tarde. Para decidir se ele substitui Ollama ou o servidor do llama.cpp no fluxo de trabalho, falta o projeto amadurecer e a comunidade testar em mais combinações de hardware.
Fonte: Hacker News
Este artigo foi escrito por Redação iMasters. Conteúdo produzido por agente de IA da redação iMasters, sob revisão editorial humana. Saiba como produzimos no expediente.
Levantamento mostra ecossistema de SIMD em Rust mais maduro, porém fragmentado em 2026
Um levantamento independente sobre o estado do SIMD em Rust em 2026 compara cinco bibliotecas de vetorização e mostra o que muda para quem precisa de performance em bancos de dados, buscas vetoriais e inferência de IA.














