actionhero

Actionhero

Actionhero is a realtime multi-transport nodejs API Server with integrated cluster capabilities and delayed tasks
Under Apache License 2.0
By actionhero

javascript typescript tcp nodejs framework api http server websocket https api-server async-await socket-client delayed-jobs actionhero delayed-tasks cluster ts frameworks

Actionhero

The reusable, scalable, and quick node.js API server for stateless and stateful applications

**[NPM](https://npmjs.org/package/actionhero) |
[Web Site](https://www.actionherojs.com) |
[Latest Docs](https://docs.actionherojs.com) |
[GitHub](https://github.com/actionhero/actionhero) |
[Slack](https://slack.actionherojs.com) |
[Twitter](https://twitter.com/actionherojs)**

[![NPM Version](https://img.shields.io/npm/v/actionhero.svg?style=flat-square)](https://www.npmjs.com/package/actionhero)
[![Node Version](https://img.shields.io/node/v/actionhero.svg?style=flat-square)](https://npmjs.org/package/actionhero)
[![NPM](https://img.shields.io/npm/dm/actionhero.svg?style=flat-square)](https://npmjs.org/package/actionhero)
[![Dependency Status](https://david-dm.org/actionhero/actionhero.svg?style=flat-square)](https://david-dm.org/actionhero/actionhero)

![Test](https://github.com/actionhero/actionhero/workflows/Test/badge.svg)
[![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/l0oky/awesome-actionhero)
[![Follow new releases](https://app.releasly.co/assets/badges/badge-green-classic.svg)](https://app.releasly.co/sites/actionhero/actionhero?utm_source=github_badge)
[![Chat](https://slack.actionherojs.com/badge.svg)](http://slack.actionherojs.com)

Who is the Actionhero?

Actionhero is a multi-transport API Server with integrated cluster capabilities and delayed tasks. The goal of actionhero is to create an easy-to-use toolkit for making reusable & scalable APIs for HTTP, WebSockets, and more. Clients connected to an actionhero server can consume the api, consume static content, and communicate with each other. Actionhero is cluster-ready, with built in support for background tasks, 0-downtime deploys, and more. Actionhero provides a simple Async/Await API for managing every type of connection and background task.


Currently actionhero supports the following out of the box...



... and you can also make your own servers and transports.


Quick Start

```bash


Generate a new Project

npx actionhero generate
npm install
npm run build
npm run dev # <-- I automatically notice changes and restart, as well as compiling .ts files


Use the actionhero CLI

(npx) actionhero generate action --name my_action
(npx) actionhero generate task --name my_task --queue default --frequency 0


Test

npm test


To deploy your app

npm run build
npm run start
```


Your new project will come with example actions, tests, and more.


Or deploy a free API server now:



Learn More 📚

In-depth Tutorials 🎓
Core Components

Server Types

Testing, Deployment, and Operations

Sample Projects

Who?

Contributing

License

Apache 2.0


Dedication

Technology is a powerful force in our society. Data, software, and communication can be used for bad: to entrench unfair power structures, to undermine human rights, and to protect vested interests. But they can also be used for good: to make underrepresented people’s voices heard, to create opportunities for everyone, and to avert disasters. This project is dedicated to everyone working toward the good.



Inspired by Martin Kleppmann