Azura é um microframework web minimalista, poderoso e moderno, feito para APIs rápidas e modulares usando TypeScript ou JavaScript.
- 🚀 Rápido, minimalista e extremamente leve.
 - 📦 Suporte completo a TypeScript e JavaScript.
 - 🛠️ CLI poderosa para gerar projetos rapidamente.
 - 🧩 Arquitetura modular baseada em Controllers, Services e Plugins.
 - 🔌 Sistema de middlewares e hooks.
 - 🌎 Ideal para APIs REST, aplicações serverless e microservices.
 - ⚡ Compatível com Node.js 18+ e Bun.
 - 📄 Templates prontos para acelerar o desenvolvimento.
 
npm install @atosjs/azuraou
bun add @atosjs/azuranpm install -g @atosjs/azura
azura create my-api tsArgumentos:
my-api: Nome da pasta/projeto.ts: Tipo de projeto. Usetspara TypeScript oujspara JavaScript.
const { AzuraServer } = require('@atosjs/azura');
const app = new AzuraServer();
app.get('/', (req, res) => {
  res.send('Hello World from Azura!');
});
app.listen(3000, () => {
  console.log('Server running at http://localhost:3000');
});import { Controller, Get } from '@atosjs/azura';
@Controller('/api')
export class ExampleController {
  @Get('/hello')
  hello(req, res) {
    res.json({ message: 'Hello from API!' });
  }
}import { AzuraServer } from '@atosjs/azura';
import { ExampleController } from './controllers/ExampleController';
const app = new AzuraServer();
app.load([ExampleController]); // Carrega controladores
app.listen(3000);Cria uma nova instância do servidor.
Parâmetros:
| Nome | Tipo | Padrão | Descrição | 
|---|---|---|---|
options.port | 
number | 
3000 | 
Porta que o servidor irá escutar. | 
options.https | 
boolean | 
false | 
Se true, habilita HTTPS. | 
options.http2 | 
boolean | 
false | 
Se true, habilita HTTP2. | 
options.cluster | 
boolean | 
false | 
Se true, usa todos os CPUs com cluster. | 
| Método | Descrição | 
|---|---|
app.get(path, handler) | 
Registra uma rota GET. | 
app.post(path, handler) | 
Registra uma rota POST. | 
app.put(path, handler) | 
Registra uma rota PUT. | 
app.delete(path, handler) | 
Registra uma rota DELETE. | 
app.use(middleware) | 
Adiciona middlewares globais. | 
app.load(controllers) | 
Carrega controladores usando decorators. | 
app.listen(port?) | 
Inicia o servidor na porta especificada. | 
app.decorate(name, value) | 
Injeta propriedades customizadas na aplicação. | 
app.registerPlugin(plugin, options?) | 
Registra plugins personalizados. | 
app.onHook(type, handler) | 
Adiciona hooks em eventos do ciclo de vida. | 
| Propriedade | Tipo | Descrição | 
|---|---|---|
req.query | 
object | 
Parâmetros da querystring (?chave=valor). | 
req.params | 
object | 
Parâmetros da rota dinâmica (/user/:id). | 
req.body | 
object | 
Dados do corpo da requisição (POST, PUT). | 
req.cookies | 
object | 
Cookies da requisição. | 
req.ip | 
string | 
IP do cliente. | 
| Método | Descrição | 
|---|---|
res.send(body) | 
Envia resposta simples (text/html). | 
res.json(object) | 
Envia resposta em JSON (application/json). | 
res.status(code) | 
Define o status da resposta (res.status(404)). | 
res.set(key, value) | 
Define headers. | 
res.get(key) | 
Recupera headers. | 
my-api/
├── src/
│   ├── controllers/
│   │   └── UserController.ts
│   ├── services/
│   │   └── UserService.ts
│   ├── plugins/
│   │   └── AuthPlugin.ts
│   └── index.ts
├── package.json
├── tsconfig.json (se TypeScript)
└── README.md| Comando | Descrição | 
|---|---|
| `azura create <ts | js>` | 
azura serve | 
Inicia o servidor em modo desenvolvimento. | 
- Node.js versão 18 ou superior
 - (Opcional) Bun para desenvolvimento mais rápido
 
Clone o repositório oficial:
git clone https://github.com/0xviny/Azura.JS
cd atosjs/packages/azura
npm install
npm run devBuild para produção:
npm run buildContribuições são muito bem-vindas!
- Faça um fork do projeto.
 - Crie uma branch: 
git checkout -b minha-feature. - Commit suas mudanças: 
git commit -m 'feat: minha nova feature'. - Push para o seu fork: 
git push origin minha-feature. - Abra um Pull Request!
 
Distribuído sob a licença ISC.
Veja o arquivo LICENSE para mais informações.
Azura é inspirado na simplicidade do Express e na modularidade do Fastify, combinando o melhor dos dois mundos para criar APIs pequenas, rápidas e modernas.
Obrigado por usar Azura! 💙
