Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

language-detector

Cloudflare Worker serverless, escrito em Rust, que detecta o idioma de um texto. Você manda uma string, ele responde qual língua é.

Usa a lib whichlang para a detecção, compilado para WebAssembly e servido na edge da Cloudflare. whichlang é rápido, puro Rust (sem modelo externo pra carregar) e preciso em frases curtas — o caso de uso aqui.

API

GET /?text=<texto>

Detecta o idioma do text passado na query string.

Exemplo

curl "https://language-detector.ranqia.workers.dev/?text=best brand gift for mom birthday"

Resposta (200 OK)

{
  "lang": "en",
  "lang3": "eng"
}
Campo Tipo Descrição
lang string Código ISO 639-1 de 2 letras (en, pt, es)
lang3 string Código ISO 639-3 de 3 letras (eng, por)

O whichlang sempre retorna um palpite (não há caso "não detectado"), e não expõe score de confiança. Texto vazio ou sem sinal linguístico cai no default inglês. Idiomas suportados (16): árabe, mandarim, alemão, inglês, francês, hindi, italiano, japonês, coreano, holandês, português, russo, espanhol, sueco, turco, vietnamita.

Erros

Status Quando
400 Falta o parâmetro text ou está vazio
405 Método diferente de GET

Desenvolvimento local

Requer Rust, Node/npm e o target Wasm:

rustup target add wasm32-unknown-unknown
npx wrangler dev

O Worker sobe em http://localhost:8787.

Deploy

O deploy roda automaticamente via Cloudflare Workers Builds a cada push na main. O ambiente de CI não vem com Rust, então build.sh instala a toolchain antes de compilar.

Para deployar manualmente da sua máquina:

npx wrangler deploy

Como funciona

O código Rust (src/lib.rs) compila para um módulo WebAssembly via worker-build. A Cloudflare gera um shim JavaScript (build/worker/shim.mjs) que carrega esse Wasm e chama o handler fetch a cada requisição HTTP.

About

Small serverless api for fast language detection

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages