# Amala
![amala2](https://github.com/iyobo/amala/assets/5804246/acc68a52-1110-4e84-84b3-7529b1f0d354)


**Amala** is a decorator-based API framework for KoaJS v2+ and Typescript.
Amala is fast, light, self-documenting and Docker-ready; Perfect for microservices.

- Define your REST API endpoints using ES8 _classes_ and _decorators_.
- Inject arguments into your endpoint handlers, effectively turning your controller endpoints into standalone, testable service endpoints.
- Clean, light and FAST endpoints. Powered by Koa.
- No further magic past decorators. Full access to underlying Koa app.
- Project creator comes with fully configured Docker and Docker-compose settings for quick containerization.
- In-built OpenAPI spec exporter and Swagger UI!

This leads to clean, self-documenting API endpoints and makes it so you can re-use those service endpoints elsewhere.
It also makes your endpoint endpoints easier to test.

## Supporting Amala

**Amala** is an MIT-licensed open source project with its ongoing development made possible entirely by
community support. If Amala is helping you build
awesome APIs, please consider <a href="https://www.patreon.com/bePatron?u=19661939" data-patreon-widget-type="become-patron-button">Becoming a Patron</a>.

If you would like to contribute in other ways, Pull requests are also welcome!

## Getting started
You may create an Amala project with any of the following:
- `npm init amala-app <project_name>`
- `npm create amala-app <project_name>`
- `yarn create amala-app <project_name>`

For next steps, see official docs at https://amalajs.com.
