{"id":15020866,"url":"https://github.com/ditsmod/ditsmod","last_synced_at":"2026-05-05T00:01:50.388Z","repository":{"id":47776679,"uuid":"185952094","full_name":"ditsmod/ditsmod","owner":"ditsmod","description":"Ditsmod is a Node.js-based web framework designed for building highly extensible and fast applications. Has native modules for REST and tRPC.","archived":false,"fork":false,"pushed_at":"2026-04-29T19:48:31.000Z","size":15482,"stargazers_count":102,"open_issues_count":0,"forks_count":4,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-04-29T21:32:58.416Z","etag":null,"topics":["dependency-injection","ditsmod","http-server","modularity","module-pattern","nestjs","nodejs","nodejs-framework","trpc","trpc-server"],"latest_commit_sha":null,"homepage":"https://ditsmod.github.io/en/","language":"TypeScript","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/ditsmod.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-05-10T08:41:03.000Z","updated_at":"2026-04-29T19:48:48.000Z","dependencies_parsed_at":"2023-09-22T11:20:04.483Z","dependency_job_id":"668cebd5-b4f9-4deb-9b97-b3fdacdae7ff","html_url":"https://github.com/ditsmod/ditsmod","commit_stats":{"total_commits":4222,"total_committers":4,"mean_commits":1055.5,"dds":0.0028422548555187,"last_synced_commit":"60beaf21c2b13eef7f389bd532ef8f42dac80f14"},"previous_names":["restify-ts/core"],"tags_count":357,"template":false,"template_full_name":null,"purl":"pkg:github/ditsmod/ditsmod","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ditsmod%2Fditsmod","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ditsmod%2Fditsmod/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ditsmod%2Fditsmod/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ditsmod%2Fditsmod/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ditsmod","download_url":"https://codeload.github.com/ditsmod/ditsmod/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ditsmod%2Fditsmod/sbom","scorecard":{"id":345110,"data":{"date":"2025-08-11","repo":{"name":"github.com/ditsmod/ditsmod","commit":"9781118fb7976ee73e58225095f55a30e0adf40a"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.7,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":0,"reason":"41 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-qwcr-r2fm-qrc7","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-f7f6-9jq7-3rqj","Warn: Project is vulnerable to: GHSA-qw6h-vgh9-j6wx","Warn: Project is vulnerable to: GHSA-c7qv-q95q-8v27","Warn: Project is vulnerable to: GHSA-4www-5p9h-95mh","Warn: Project is vulnerable to: GHSA-9gqv-wp59-fq42","Warn: Project is vulnerable to: GHSA-m5qc-5hw7-8vg7","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-mwcw-c2x4-8c55","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-9wv6-86v2-598j","Warn: Project is vulnerable to: GHSA-rhx6-c78j-4q9w","Warn: Project is vulnerable to: GHSA-x7hr-w5r2-h6wg","Warn: Project is vulnerable to: GHSA-m6fv-jmcg-4jfg","Warn: Project is vulnerable to: GHSA-cm22-4g7w-348p","Warn: Project is vulnerable to: GHSA-4vvj-4cpr-p986","Warn: Project is vulnerable to: GHSA-4v9v-hfq4-rm2v","Warn: Project is vulnerable to: GHSA-9jgg-88mc-972h","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q","Warn: Project is vulnerable to: GHSA-xffm-g5w8-qvg7","Warn: Project is vulnerable to: GHSA-h5c3-5r3r-rr8q","Warn: Project is vulnerable to: GHSA-rmvr-2pp2-xj38","Warn: Project is vulnerable to: GHSA-xx4v-prfh-6cgc","Warn: Project is vulnerable to: GHSA-jr5f-v2jv-69x6","Warn: Project is vulnerable to: GHSA-vhxf-7vqr-mrjg","Warn: Project is vulnerable to: GHSA-67mh-4wv8-2f99","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-75v8-2h7p-7m2m","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-vg6x-rcgg-rjx6","Warn: Project is vulnerable to: GHSA-x574-m823-4x7w","Warn: Project is vulnerable to: GHSA-4r4m-qw57-chr8","Warn: Project is vulnerable to: GHSA-xcj6-pq6g-qj4x","Warn: Project is vulnerable to: GHSA-356w-63v5-8wf4","Warn: Project is vulnerable to: GHSA-859w-5945-r5v3","Warn: Project is vulnerable to: GHSA-9crc-q9x8-hgqq"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T06:51:50.373Z","repository_id":47776679,"created_at":"2025-08-18T06:51:50.373Z","updated_at":"2025-08-18T06:51:50.373Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32626539,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"ssl_error","status_checked_at":"2026-05-04T10:08:02.005Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["dependency-injection","ditsmod","http-server","modularity","module-pattern","nestjs","nodejs","nodejs-framework","trpc","trpc-server"],"created_at":"2024-09-24T19:55:46.895Z","updated_at":"2026-05-05T00:01:50.380Z","avatar_url":"https://github.com/ditsmod.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Why You Should Try Ditsmod\n\nAs of late 2025, there are roughly three dozen well-known backend web frameworks for Node.js. The majority are written in JavaScript, while the rest use TypeScript. Newer frameworks are almost always written in TypeScript, since it brings a number of significant advantages. Around ten of these frameworks provide built-in Dependency Injection (DI) and use decorators for metaprogramming. Only a handful – maybe five – offer first-class modularity. And just about three of them have their codebase written in pure ESM.\n\nIt’s understandable that mature frameworks with large ecosystems and user bases can’t easily switch to the newest ECMAScript features. Smaller or less popular frameworks, on the other hand, can experiment more freely, introduce breaking changes, and fix deep architectural issues along the way.\n\n**Ditsmod** has been in development since early 2020, and its third major release is planned for 2026. Version 3 will focus on framework stabilization, full test coverage, and API refinements.\n\nSo why should you give **Ditsmod** a try?  \nEarlier versions went through a lot of breaking changes, but as a result, Ditsmod now has a solid, modular, and flexible architecture designed for building modern, scalable applications. Its codebase is written in TypeScript and uses ESM natively. It comes with hierarchical Dependency Injection – a perfect match for modular applications. With built-in helpers for decorators and TypeScript-powered reflection, Ditsmod makes metaprogramming practical and productive, simplifying dependency management, module integration, and testing.\n\nFor more info, see the documentation:\n\n- [The English version of the documentation](https://ditsmod.github.io/en/).\n- [Українська версія документації](https://ditsmod.github.io/).\n\n## Benchmarks\n\nYou can view [benchmarks for backend frameworks on the JavaScript stack][4].\n\n![benchmarks for backend frameworks on the JavaScript stack][10]\n\n## About the repo\n\nThis monorepository uses yarn workspaces (see `package.json`).\n\nDuring you run the following command:\n\n```bash\ncorepack enable\ncorepack install\nyarn install\ncd packages/openapi\nyarn build-ui\n```\n\nyarn will create symlinks in `node_modules` for all packages listed in the `packages/*` and `examples/*` folders. Also, modules in the `packages/*` folder are linked to the applications in the `examples/*` folder thanks to [compilerOptions.paths][2] as well as [Project References][3]. So, after any change in the source files in `packages/*`, these changes are automatically reflected in `examples/*`.\n\nDevelopment mode for any application in the `examples/*` directory can be started with this command:\n\n```bash\ncd examples/01*\nyarn start:dev\n```\n\n[1]: https://github.com/angular/angular\n[2]: https://www.typescriptlang.org/tsconfig#paths\n[3]: https://www.typescriptlang.org/docs/handbook/project-references.html\n[4]: https://github.com/ditsmod/vs-webframework\n[5]: https://github.com/tanem/express-bookshelf-realworld-example-app\n[6]: https://dev.to/kostyatretyak/nestjs-vs-ditsmod-injection-scopes-537o\n[7]: https://x.com/kammysliwiec/status/1447892571376783360\n[8]: https://github.com/nestjs/nest/issues/13817#issuecomment-2245130264\n[9]: https://x.com/kammysliwiec/status/1859531066006032394\n[10]: https://github.com/ditsmod/vs-webframework/blob/main/req-per-sec-frameworks3.png\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fditsmod%2Fditsmod","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fditsmod%2Fditsmod","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fditsmod%2Fditsmod/lists"}