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.
Amazon compra a DuckLabs e leva o DuckDB para dentro do Aurora PostgreSQL
A Amazon comprou a DuckLabs, empresa por trás do banco analítico DuckDB, e integrou a ferramenta ao Aurora PostgreSQL para cruzar dados transacionais com históricos no S3 sem pipelines de ETL.















