{"id":13452023,"url":"https://github.com/moleculerjs/moleculer","last_synced_at":"2025-05-12T16:30:09.223Z","repository":{"id":37432445,"uuid":"82289483","full_name":"moleculerjs/moleculer","owner":"moleculerjs","description":":rocket: Progressive microservices framework for Node.js","archived":false,"fork":false,"pushed_at":"2025-04-18T17:45:16.000Z","size":28302,"stargazers_count":6263,"open_issues_count":69,"forks_count":590,"subscribers_count":125,"default_branch":"master","last_synced_at":"2025-05-04T12:16:30.700Z","etag":null,"topics":["distributed-systems","microservice","microservice-framework","microservices","moleculer","nodejs"],"latest_commit_sha":null,"homepage":"https://moleculer.services/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/moleculerjs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","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":{"patreon":"moleculer","open_collective":"moleculer","tidelift":"npm/moleculer","github":"moleculerjs"}},"created_at":"2017-02-17T11:11:35.000Z","updated_at":"2025-05-04T08:55:18.000Z","dependencies_parsed_at":"2023-10-11T19:41:52.487Z","dependency_job_id":"78b6d2ef-0eab-4829-a16f-96dbf160f9a2","html_url":"https://github.com/moleculerjs/moleculer","commit_stats":{"total_commits":3648,"total_committers":154,"mean_commits":23.68831168831169,"dds":"0.22642543859649122","last_synced_commit":"6a5c249e73b6d29026a8d3418eccfde3849e7e26"},"previous_names":[],"tags_count":120,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moleculerjs%2Fmoleculer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moleculerjs%2Fmoleculer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moleculerjs%2Fmoleculer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moleculerjs%2Fmoleculer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moleculerjs","download_url":"https://codeload.github.com/moleculerjs/moleculer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252330748,"owners_count":21730696,"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":["distributed-systems","microservice","microservice-framework","microservices","moleculer","nodejs"],"created_at":"2024-07-31T07:01:10.405Z","updated_at":"2025-05-04T12:16:37.043Z","avatar_url":"https://github.com/moleculerjs.png","language":"JavaScript","funding_links":["https://patreon.com/moleculer","https://opencollective.com/moleculer","https://tidelift.com/funding/github/npm/moleculer","https://github.com/sponsors/moleculerjs","https://tidelift.com/subscription/pkg/npm-moleculer?utm_source=npm-moleculer\u0026utm_medium=referral\u0026utm_campaign=enterprise\u0026utm_term=repo","https://tidelift.com/security","https://www.patreon.com/bePatron?u=6245171"],"categories":["Packages","JavaScript","Repository","🔧 Utilities \u0026 Miscellaneous","对打造产品有帮助","后端开发框架及项目","nodejs","包"],"sub_categories":["Web frameworks","Web Frameworks","管理面板","Web 框架"],"readme":"![Moleculer logo](docs/assets/logo.png)\n\n![CI test](https://github.com/moleculerjs/moleculer/workflows/CI%20test/badge.svg)\n[![Coverage Status](https://coveralls.io/repos/github/moleculerjs/moleculer/badge.svg?branch=master)](https://coveralls.io/github/moleculerjs/moleculer?branch=master)\n[![Maintainability](https://api.codeclimate.com/v1/badges/05ef990fe1ccb3e56067/maintainability)](https://codeclimate.com/github/moleculerjs/moleculer/maintainability)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/d3dbf0facae04c128054ac2047d1e117)](https://www.codacy.com/gh/moleculerjs/moleculer/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=moleculerjs/moleculer\u0026amp;utm_campaign=Badge_Grade)\n[![Known Vulnerabilities](https://snyk.io/test/github/moleculerjs/moleculer/badge.svg)](https://snyk.io/test/github/moleculerjs/moleculer)\n[![Discord chat](https://img.shields.io/discord/585148559155003392)](https://discord.gg/TSEcDRP)\n[![Gurubase](https://img.shields.io/badge/Gurubase-Ask%20Moleculer%20Guru-006BFF)](https://gurubase.io/g/moleculer)\n\n[![Downloads](https://img.shields.io/npm/dm/moleculer.svg)](https://www.npmjs.com/package/moleculer)\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fmoleculerjs%2Fmoleculer.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fmoleculerjs%2Fmoleculer?ref=badge_shield)\n[![Patreon](docs/assets/patreon.svg)][patreon]\n\n# Moleculer [![NPM version](https://img.shields.io/npm/v/moleculer.svg)](https://www.npmjs.com/package/moleculer) [![Twitter URL](https://img.shields.io/twitter/url/http/shields.io.svg?style=social\u0026logo=twitter)](https://twitter.com/intent/tweet?text=Moleculer%20is%20a%20modern%20microservices%20framework%20for%20Node.js\u0026url=https://github.com/moleculerjs/moleculer\u0026via=MoleculerJS\u0026hashtags=nodejs,javascript,microservices)\n\n\nMoleculer is a fast, modern and powerful microservices framework for [Node.js](https://nodejs.org/en/). It helps you to build efficient, reliable \u0026 scalable services. Moleculer provides many features for building and managing your microservices.\n\u003c!--\n![](https://img.shields.io/badge/performance-%2B50%25-brightgreen.svg)\n![](https://img.shields.io/badge/performance-%2B5%25-green.svg)\n![](https://img.shields.io/badge/performance---10%25-yellow.svg)\n![](https://img.shields.io/badge/performance---42%25-red.svg)\n--\u003e\n\n**Website**: [https://moleculer.services](https://moleculer.services)\n\n**Documentation**: [https://moleculer.services/docs](https://moleculer.services/docs)\n\n# Top sponsors\n\n\u003ctable style=\"text-align:center;\"\u003e\u003ctr\u003e\n    \u003ctd\u003e\u003ca href=\"https://www.servereye.de/\" target=\"_blank\"\u003e\u003cimg src=\"https://www.servereye.de/wp-content/uploads/server-eye_logo2019.png\" width=\"300\" valign=\"middle\" /\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003c!--td\u003e\u003ca href=\"https://sonderformat.llc/\" target=\"_blank\"\u003e\u003cimg src=\"https://sonderformat.llc/sonderformat/logo/sonderformat-wide-col.png\" width=\"300\" valign=\"middle\" /\u003e\u003c/a\u003e\u003c/td--\u003e\n\u003c/tr\u003e\u003c/table\u003e\n\n\n# What's included\n\n- Promise-based solution (async/await compatible)\n- request-reply concept\n- support event driven architecture with balancing\n- built-in service registry \u0026 dynamic service discovery\n- load balanced requests \u0026 events (round-robin, random, cpu-usage, latency, sharding)\n- many fault tolerance features (Circuit Breaker, Bulkhead, Retry, Timeout, Fallback)\n- plugin/middleware system\n- support versioned services\n- support [Streams](https://nodejs.org/dist/latest-v10.x/docs/api/stream.html)\n- service mixins\n- built-in caching solution (Memory, MemoryLRU, Redis)\n- pluggable loggers (Console, File, Pino, Bunyan, Winston, Debug, Datadog, Log4js)\n- pluggable transporters (TCP, NATS, MQTT, Redis, NATS Streaming, Kafka, AMQP 0.9, AMQP 1.0)\n- pluggable serializers (JSON, Avro, MsgPack, Protocol Buffer, Thrift, CBOR, Notepack)\n- pluggable parameter validator\n- multiple services on a node/server\n- master-less architecture, all nodes are equal\n- built-in parameter validation with [fastest-validator](https://github.com/icebob/fastest-validator)\n- built-in metrics feature with reporters (Console, CSV, Datadog, Event, Prometheus, StatsD)\n- built-in tracing feature with exporters (Console, Datadog, Event, Jaeger, Zipkin, NewRelic)\n- official [API gateway](https://github.com/moleculerjs/moleculer-web), [Database access](https://github.com/moleculerjs/moleculer-db) and many other modules...\n\n# Installation\n```\n$ npm i moleculer\n```\nor\n```\n$ yarn add moleculer\n```\n\n# Create your first microservice\nThis example shows you how to create a small service with an `add` action which can add two numbers and how to call it.\n```js\nconst { ServiceBroker } = require(\"moleculer\");\n\n// Create a broker\nconst broker = new ServiceBroker();\n\n// Create a service\nbroker.createService({\n    name: \"math\",\n    actions: {\n        add(ctx) {\n            return Number(ctx.params.a) + Number(ctx.params.b);\n        }\n    }\n});\n\n// Start broker\nbroker.start()\n    // Call service\n    .then(() =\u003e broker.call(\"math.add\", { a: 5, b: 3 }))\n    .then(res =\u003e console.log(\"5 + 3 =\", res))\n    .catch(err =\u003e console.error(`Error occurred! ${err.message}`));\n```\n[Try it in your browser](https://codesandbox.io/s/ky5lj09jv?fontsize=14)\n\n# Create a Moleculer project\nUse the Moleculer CLI tool to create a new Moleculer based microservices project.\n\n1. Create a new project (named `moleculer-demo`)\n    ```bash\n    $ npx moleculer-cli -c moleculer init project moleculer-demo\n    ```\n    \n2. Open the project folder\n    ```bash\n    $ cd moleculer-demo\n    ```\n    \n3. Start the project\n    ```bash\n    $ npm run dev\n    ```\n\n4. Open the [http://localhost:3000/](http://localhost:3000/) link in your browser. It shows a welcome page that contains more information about your project \u0026 you can test the generated services.\n\n:tada: **Congratulations! Your first Moleculer-based microservices project is created. Read our [documentation](https://moleculer.services/docs) to learn more about Moleculer.**\n\n![Welcome page](docs/assets/project-welcome-page.png)\n\n# Official modules\nWe have many official modules for Moleculer. [Check our list!](https://moleculer.services/modules.html)\n\n# Supporting\nMoleculer is an open source project. It is free to use for your personal or commercial projects. However, developing it takes up all our free time to make it better and better on a daily basis. If you like Moleculer framework, **[please support it](https://moleculer.services/support.html)**.\n\nThank you very much!\n\n# For enterprise\n\nAvailable as part of the Tidelift Subscription.\n\nThe maintainers of moleculer and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-moleculer?utm_source=npm-moleculer\u0026utm_medium=referral\u0026utm_campaign=enterprise\u0026utm_term=repo)\n\n# Documentation\nYou can find here [the documentation](https://moleculer.services/docs).\n\n# Changelog\nSee [CHANGELOG.md](CHANGELOG.md).\n\n# Security contact information\nTo report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure.\n\n# Contributions\nWe welcome you to join in the development of Moleculer. Please read our [contribution guide](http://moleculer.services/docs/contributing.html).\n\u003ca href=\"https://github.com/moleculerjs/moleculer/graphs/contributors\"\u003e\u003cimg src=\"https://opencollective.com/moleculer/contributors.svg?width=882\u0026button=false\" /\u003e\u003c/a\u003e\n\n## Project activity\n\n![Alt](https://repobeats.axiom.co/api/embed/f4cb6da776e9edc2d8118aff4e0c1ae9afe37896.svg \"Repobeats analytics image\")\n\n# License\nMoleculer is available under the [MIT license](https://tldrlegal.com/license/mit-license).\n\n[3rd party licenses](https://app.fossa.io/reports/09fc5b4f-d321-4f68-b859-8c61fe3eb6dc)\n\n# Contact\nCopyright (c) 2016-2023 MoleculerJS\n\n[![@moleculerjs](https://img.shields.io/badge/github-moleculerjs-green.svg)](https://github.com/moleculerjs) [![@MoleculerJS](https://img.shields.io/badge/twitter-MoleculerJS-blue.svg)](https://twitter.com/MoleculerJS)\n\n[patreon]: https://www.patreon.com/bePatron?u=6245171\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoleculerjs%2Fmoleculer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoleculerjs%2Fmoleculer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoleculerjs%2Fmoleculer/lists"}