{"id":13406578,"url":"https://github.com/actionhero/actionhero","last_synced_at":"2025-05-12T15:26:43.707Z","repository":{"id":496751,"uuid":"2491877","full_name":"actionhero/actionhero","owner":"actionhero","description":"Actionhero is a realtime multi-transport nodejs API Server with integrated cluster capabilities and delayed tasks","archived":false,"fork":false,"pushed_at":"2025-05-01T17:04:29.000Z","size":21854,"stargazers_count":2412,"open_issues_count":16,"forks_count":260,"subscribers_count":70,"default_branch":"main","last_synced_at":"2025-05-01T18:20:40.773Z","etag":null,"topics":["actionhero","api","api-server","async-await","cluster","delayed-jobs","delayed-tasks","framework","frameworks","http","https","javascript","nodejs","server","socket-client","tcp","ts","typescript","websocket"],"latest_commit_sha":null,"homepage":"https://www.actionherojs.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/actionhero.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["evantahler"]}},"created_at":"2011-09-30T20:20:43.000Z","updated_at":"2025-05-01T17:03:25.000Z","dependencies_parsed_at":"2023-02-13T03:31:40.919Z","dependency_job_id":"f719a6ee-b5d8-4f12-9a7d-a18d9337a35a","html_url":"https://github.com/actionhero/actionhero","commit_stats":{"total_commits":4537,"total_committers":150,"mean_commits":"30.246666666666666","dds":0.5699801631033723,"last_synced_commit":"cf063a0be68a312f0bdade493e0e702dab5c8e52"},"previous_names":[],"tags_count":384,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/actionhero%2Factionhero","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/actionhero%2Factionhero/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/actionhero%2Factionhero/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/actionhero%2Factionhero/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/actionhero","download_url":"https://codeload.github.com/actionhero/actionhero/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253764837,"owners_count":21960642,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["actionhero","api","api-server","async-await","cluster","delayed-jobs","delayed-tasks","framework","frameworks","http","https","javascript","nodejs","server","socket-client","tcp","ts","typescript","websocket"],"created_at":"2024-07-30T19:02:34.000Z","updated_at":"2025-05-12T15:26:43.679Z","avatar_url":"https://github.com/actionhero.png","language":"TypeScript","readme":"# Actionhero\n\n_The reusable, scalable, and quick node.js API server for stateless and stateful applications_\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://raw.github.com/actionhero/actionhero/master/public/logo/actionhero-small.png\" alt=\"Actionhero Logo\" /\u003e\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\n\u003cdiv align=\"center\" class=\"topLinks\"\u003e\n\n**[NPM](https://npmjs.org/package/actionhero) |\n[Web Site](https://www.actionherojs.com) |\n[Latest Docs](https://docs.actionherojs.com) |\n[GitHub](https://github.com/actionhero/actionhero) |\n[Slack](https://slack.actionherojs.com) |\n[Twitter](https://twitter.com/actionherojs)**\n\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\n\u003cdiv align=\"center\" class=\"topBadges\"\u003e\n\n[![NPM Version](https://img.shields.io/npm/v/actionhero.svg?style=flat-square)](https://www.npmjs.com/package/actionhero)\n[![Node Version](https://img.shields.io/node/v/actionhero.svg?style=flat-square)](https://npmjs.org/package/actionhero)\n[![NPM](https://img.shields.io/npm/dm/actionhero.svg?style=flat-square)](https://npmjs.org/package/actionhero)\n[![Test](https://github.com/actionhero/actionhero/actions/workflows/test.yml/badge.svg)](https://github.com/actionhero/actionhero/actions/workflows/test.yml)\n\n\u003c/div\u003e\n\n## Who is the Actionhero?\n\nActionhero 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** \u0026 **scalable** APIs for HTTP, WebSockets, and more. Clients connected to an actionhero server can [**consume the api**](https://www.actionherojs.com/tutorials/actions), [**consume static content**](https://www.actionherojs.com/tutorials/file-server), and [**communicate with each other**](https://www.actionherojs.com/tutorials/chat). 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.\n\nCurrently actionhero supports the following out of the box...\n\n- [Web Clients](https://www.actionherojs.com/tutorials/web-server): HTTP, HTTPS\n- [Web Socket Clients](https://www.actionherojs.com/tutorials/websocket-server): HTTP, HTTPS\n\n[... and you can also make your own servers and transports.](https://www.actionherojs.com/tutorials/servers)\n\n## Quick Start\n\n```bash\n# Generate a new Project\nnpx actionhero generate\nnpm install\nnpm run build\nnpm run dev # \u003c-- I automatically notice changes and restart, as well as compiling .ts files\n\n# Use the actionhero CLI\n(npx) actionhero generate action --name my_action\n(npx) actionhero generate task --name my_task --queue default --frequency 0\n\n# Test\nnpm test\n\n# To deploy your app\nnpm run build\nnpm run start\n```\n\nYour new project will come with example actions, tests, and more.\n\nOr deploy a free API server now:\n\n[![Deploy to Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/actionhero/actionhero)\n\n## Learn More 📚\n\n- [Getting Started @ www.actionherojs.com](https://www.actionherojs.com/get-started)\n  - Actionhero's website can be found @ [https://github.com/actionhero/www.actionherojs.com/](https://github.com/actionhero/www.actionherojs.com/). If you want to contribute to this site, visit the [related project](https://github.com/actionhero/www.actionherojs.com)\n  - ---\u003e Start with the [Tutorials](https://www.actionherojs.com/tutorials) \u003c---\n- [Read the typedoc documentation @ docs.actionherojs.com](http://docs.actionherojs.com/)\n  - Starting with Actionhero version 18, the documentation for each version is included in this repository (and the NPM package) in the `/docs` folder. The current version of this documentation is also automatically deployed to https://docs.actionherojs.com.\n- [Find community-based resources](https://github.com/l0oky/awesome-actionhero)\n- [Interact with the Community \u0026 View the Release History](https://www.actionherojs.com/community)\n- [Server Client](https://github.com/actionhero/actionhero-client)\n\n## In-depth Tutorials 🎓\n\n### Core Components\n\n- [Actions](https://www.actionherojs.com/tutorials/actions)\n- [Tasks](https://www.actionherojs.com/tutorials/tasks)\n- [Middleware](https://www.actionherojs.com/tutorials/middleware)\n- [Initializers](https://www.actionherojs.com/tutorials/initializers)\n- [CLI Commands](https://www.actionherojs.com/tutorials/cli)\n- [Configuration](https://www.actionherojs.com/tutorials/config)\n- [Cluster](https://www.actionherojs.com/tutorials/cluster)\n- [Chat \u0026 Realtime Communication](https://www.actionherojs.com/tutorials/chat)\n- [File Server](https://www.actionherojs.com/tutorials/file-server)\n- [Logging](https://www.actionherojs.com/tutorials/logging)\n- [Plugins](https://www.actionherojs.com/tutorials/plugins)\n- [Servers](https://www.actionherojs.com/tutorials/servers)\n- [Localization \u0026 Translation](https://www.actionherojs.com/tutorials/localization)\n\n### Server Types\n\n- [Web Server \u0026 Routes](https://www.actionherojs.com/tutorials/web-server)\n- [WebSocket Server](https://www.actionherojs.com/tutorials/websocket-server)\n\n### Testing, Deployment, and Operations\n\n- [Running Actionhero](https://www.actionherojs.com/tutorials/running-actionhero)\n- [Development Mode \u0026 REPL](https://www.actionherojs.com/tutorials#configuration)\n- [Testing \u0026 SpecHelper](https://www.actionherojs.com/tutorials/testing)\n- [Production Notes](https://www.actionherojs.com/tutorials/production-notes)\n- [Upgrade Path](https://www.actionherojs.com/tutorials/upgrade-path)\n\n## Sample Projects\n\n- [Simple](https://github.com/actionhero/actionhero-tutorial)\n- [Elaborate (React, Next.JS, Bootstrap, Sequelize)](https://github.com/actionhero/actionhero-chat)\n- [Client Use: React](https://github.com/actionhero/actionhero-react-next-chat)\n- [Client Use: React Native](https://github.com/actionhero/actionhero-react-native)\n\n## Who?\n\n- Many folks [have helped](https://github.com/actionhero/actionhero/graphs/contributors) to make Actionhero a reality.\n- If you want to contribute to actionhero, contribute to the conversation on [github](https://github.com/actionhero/actionhero) and join us on [slack](https://slack.actionherojs.com)\n\nThank you to all of Actionhero's contributors!\n\n![image of contributors](https://contrib.rocks/image?repo=actionhero/actionhero)\n\n## Contributing\n\n- Contributing to Actionhero is easy! [You can learn more about contributing to Actionhero here](https://github.com/actionhero/actionhero/blob/master/.github/CONTRIBUTING.md)\n- By engaging the with Actionhero community or contributing to this or related projects, you agree to our [Code of Conduct](https://github.com/actionhero/actionhero/blob/master/CODE_OF_CONDUCT.md)\n\n## License\n\n[Apache 2.0](https://github.com/actionhero/actionhero/blob/master/LICENSE.txt)\n\n## Dedication\n\n\u003e 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.\n\u003e\n\u003e \u003e Inspired by Martin Kleppmann\n\n","funding_links":["https://github.com/sponsors/evantahler"],"categories":["TypeScript","Packages","Repository","包","目录","Web frameworks"],"sub_categories":["Web frameworks","Web Frameworks","Web 框架","Web框架"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Factionhero%2Factionhero","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Factionhero%2Factionhero","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Factionhero%2Factionhero/lists"}