[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-3760":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":16,"starSnapshotCount":16,"syncStatus":34,"lastSyncTime":35,"discoverSource":36},3760,"egg","eggjs\u002Fegg","eggjs","🥚🥚🥚🥚 Born to build better enterprise frameworks and apps with Node.js & Koa. https:\u002F\u002F307.run\u002Feggcode","https:\u002F\u002Feggjs.org",null,"TypeScript",18991,1808,456,373,0,7,70.47,"MIT License",false,"next",true,[5,7,24,25,26,27,28,29,30],"enterprise","framework","koa","koa-middleware","koa2","node-framework","nodejs","2026-06-12 04:00:19","English | [简体中文](.\u002FREADME.zh-CN.md)\n\n\u003Cdiv style=\"text-align:center\">\n\t\u003Cimg src=\"site\u002Fpublic\u002Fassets\u002Fegg-banner.png\" \u002F>\n\u003C\u002Fdiv>\n\n[![NPM version](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fegg.svg?style=flat-square)](https:\u002F\u002Fnpmjs.org\u002Fpackage\u002Fegg)\n[![NPM quality](http:\u002F\u002Fnpm.packagequality.com\u002Fshield\u002Fegg.svg?style=flat-square)](http:\u002F\u002Fpackagequality.com\u002F#?package=egg)\n[![NPM download](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fegg.svg?style=flat-square)](https:\u002F\u002Fnpmjs.org\u002Fpackage\u002Fegg)\n[![Node.js Version](https:\u002F\u002Fimg.shields.io\u002Fnode\u002Fv\u002Fegg.svg?style=flat)](https:\u002F\u002Fnodejs.org\u002Fen\u002Fdownload\u002F)\n[![FOSSA Status](https:\u002F\u002Fapp.fossa.com\u002Fapi\u002Fprojects\u002Fgit%2Bgithub.com%2Feggjs%2Fegg.svg?type=shield)](https:\u002F\u002Fapp.fossa.com\u002Fprojects\u002Fgit%2Bgithub.com%2Feggjs%2Fegg?ref=badge_shield)\n\n[![Continuous Integration](https:\u002F\u002Fgithub.com\u002Feggjs\u002Fegg\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Feggjs\u002Fegg\u002Factions?query=branch%3Amaster)\n[![Test coverage](https:\u002F\u002Fimg.shields.io\u002Fcodecov\u002Fc\u002Fgithub\u002Feggjs\u002Fegg.svg?style=flat-square)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Feggjs\u002Fegg)\n[![Known Vulnerabilities](https:\u002F\u002Fsnyk.io\u002Ftest\u002Fnpm\u002Fegg\u002Fbadge.svg?style=flat-square)](https:\u002F\u002Fsnyk.io\u002Ftest\u002Fnpm\u002Fegg)\n[![Open Collective backers and sponsors](https:\u002F\u002Fimg.shields.io\u002Fopencollective\u002Fall\u002Feggjs?style=flat-square)](https:\u002F\u002Fopencollective.com\u002Feggjs)\n\n## Features\n\n- Built-in Process Management\n- Plugin System\n- Framework Customization\n- Lots of [plugins](https:\u002F\u002Fgithub.com\u002Fsearch?q=topic%3Aegg-plugin&type=Repositories)\n\n## Quickstart\n\nFollow the commands listed below.\n\n```bash\n$ mkdir showcase && cd showcase\n$ pnpm create egg@beta\n$ pnpm install\n$ pnpm run dev\n$ open http:\u002F\u002Flocalhost:7001\n```\n\n> Node.js >= 20.19.0 required, [supports `require(esm)` by default](https:\u002F\u002Fnodejs.org\u002Fen\u002Fblog\u002Frelease\u002Fv20.19.0).\n\n## Monorepo Structure\n\nThis project is structured as a pnpm monorepo with the following packages:\n\n- `packages\u002Fegg` - Main Eggjs framework\n- `examples\u002Fhelloworld-commonjs` - CommonJS example application\n- `examples\u002Fhelloworld-typescript` - TypeScript example application\n- `site` - Documentation website\n\nThe monorepo uses **pnpm catalog mode** for centralized dependency management, ensuring consistent versions across all packages.\n\n### Development Commands\n\n```bash\n# Install dependencies for all packages\npnpm install\n\n# Build all packages\npnpm run build\n\n# Test all packages\npnpm run test\n\n# Run specific package commands\npnpm --filter=egg run test\npnpm --filter=@examples\u002Fhelloworld-typescript run dev\npnpm --filter=site run dev\n```\n\n### Local External Services\n\nSome DAL, ORM, Redis, and ecosystem benchmark paths need local MySQL and Redis services. Start the repository-aligned Docker services before running those tests on a clean machine:\n\n```bash\nutoo run dev:services:start\n```\n\nThis starts MySQL 8 and Redis 7, matching the main CI service versions, and creates the databases used by local DAL\u002FORM\u002Fe2e fixtures: `test`, `apple`, `banana`, `test_runtime_datasource`, `test_runtime_dao`, `test_dal_plugin`, `test_dal_standalone`, `cnpmcore`, and `cnpmcore_unittest`.\n\nUseful commands:\n\n```bash\nutoo run dev:services:status\nutoo run dev:services:stop\nutoo run dev:services:reset\n```\n\nThe default host ports are `127.0.0.1:3306` for MySQL and `127.0.0.1:6379` for Redis. If either port is already used, the start command stops before changing containers. Keep using the existing service if it is compatible with CI, or stop it and run the command again. You can change Docker host ports with `EGG_DEV_SERVICES_MYSQL_PORT` and `EGG_DEV_SERVICES_REDIS_PORT`; however, the full DAL\u002FORM\u002FRedis local test path still expects the default host ports.\n\nImage overrides are available for compatibility checks:\n\n```bash\nEGG_DEV_SERVICES_MYSQL_IMAGE=mysql:5.7 utoo run dev:services:start\nEGG_DEV_SERVICES_REDIS_IMAGE=redis:7 utoo run dev:services:start\n```\n\nRun `utoo run dev:services:reset` before switching MySQL image families, for example between MySQL 8 and MySQL 5.7, because MySQL data directories are not downgrade-compatible across major versions.\n\nCurrent hard-coded service assumptions:\n\n- Redis plugin fixtures under `plugins\u002Fredis\u002Ftest\u002Ffixtures\u002Fapps\u002F**\u002Fconfig.*` use `127.0.0.1:6379`; skipped Redis plugin tests become runnable when that port is available.\n- Session Redis fixtures under `plugins\u002Fsession\u002Ftest\u002Ffixtures\u002Fredis-session\u002Fconfig\u002Fconfig.default.js` use `127.0.0.1:6379`.\n- DAL runtime tests in `tegg\u002Fcore\u002Fdal-runtime\u002Ftest\u002FDataSource.test.ts` and `tegg\u002Fcore\u002Fdal-runtime\u002Ftest\u002FDAO.test.ts` use local MySQL on port `3306`.\n- DAL module fixtures in `tegg\u002Fplugin\u002Fdal\u002Ftest\u002Ffixtures\u002Fapps\u002Fdal-app\u002Fmodules\u002Fdal\u002Fmodule.yml` and `tegg\u002Fstandalone\u002Fstandalone\u002Ftest\u002Ffixtures\u002Fdal-*\u002Fmodule.yml` use local MySQL on port `3306`.\n- ORM fixtures in `tegg\u002Fplugin\u002Form\u002Ftest\u002Ffixtures\u002Fprepare.js` and `tegg\u002Fplugin\u002Form\u002Ftest\u002Ffixtures\u002Fapps\u002Form-app\u002Fconfig\u002Fconfig.default.ts` use local MySQL on port `3306`.\n\n## Documentations\n\n- [Documentations](https:\u002F\u002Feggjs.org\u002F)\n- [Plugins](https:\u002F\u002Fgithub.com\u002Fsearch?q=topic%3Aegg-plugin&type=Repositories)\n- [Frameworks](https:\u002F\u002Fgithub.com\u002Fsearch?q=topic%3Aegg-framework&type=Repositories)\n- [Examples](https:\u002F\u002Fgithub.com\u002Feggjs\u002Fexamples)\n\n## Contributors\n\n[![contributors](https:\u002F\u002Fcontrib.rocks\u002Fimage?repo=eggjs\u002Fegg&max=240&columns=26)](https:\u002F\u002Fgithub.com\u002Feggjs\u002Fegg\u002Fgraphs\u002Fcontributors)\n\n## How to Contribute\n\nPlease let us know how can we help. Do check out [issues](https:\u002F\u002Fgithub.com\u002Feggjs\u002Fegg\u002Fissues) for bug reports or suggestions first.\n\nTo become a contributor, please follow our [contributing guide](CONTRIBUTING.md), and review the [repository guidelines](AGENTS.md) for day-to-day development tips.\n\n## Sponsors and Backers\n\n[![sponsors](https:\u002F\u002Fopencollective.com\u002Feggjs\u002Ftiers\u002Fsponsors.svg?avatarHeight=48)](https:\u002F\u002Fopencollective.com\u002Feggjs#support)\n[![backers](https:\u002F\u002Fopencollective.com\u002Feggjs\u002Ftiers\u002Fbackers.svg?avatarHeight=48)](https:\u002F\u002Fopencollective.com\u002Feggjs#support)\n\n## License\n\n[MIT](LICENSE)\n\n[![FOSSA Status](https:\u002F\u002Fapp.fossa.com\u002Fapi\u002Fprojects\u002Fgit%2Bgithub.com%2Feggjs%2Fegg.svg?type=large)](https:\u002F\u002Fapp.fossa.com\u002Fprojects\u002Fgit%2Bgithub.com%2Feggjs%2Fegg?ref=badge_large)\n","eggjs\u002Fegg 是一个基于 Node.js 和 Koa 构建的企业级框架，旨在帮助开发者更高效地构建稳定、可扩展的应用。它集成了内置的进程管理、插件系统以及框架自定义功能，支持 TypeScript，并提供了丰富的官方和社区插件以满足不同需求。其核心特点包括强大的插件机制、灵活的配置管理和良好的开发体验。适用于需要快速搭建高质量后端服务的企业级应用开发场景，特别是在对性能和稳定性有较高要求的情况下。",2,"2026-06-11 02:56:03","top_language"]