{"id":13527101,"url":"https://github.com/cellbang/cell","last_synced_at":"2025-05-14T06:13:19.977Z","repository":{"id":37461377,"uuid":"270328634","full_name":"cellbang/cell","owner":"cellbang","description":"Cell is a Serverless First, componentized, platform-independent progressive application framework based on TypeScript. Cell 是基于 TypeScript 的 Serverless First、组件化、平台无关的渐进式应用框架。","archived":false,"fork":false,"pushed_at":"2025-05-05T15:17:31.000Z","size":91297,"stargazers_count":725,"open_issues_count":21,"forks_count":64,"subscribers_count":19,"default_branch":"main","last_synced_at":"2025-05-08T18:44:15.704Z","etag":null,"topics":["aliyun","aws","bff","dependency-injection","faas","microapp","microservice","orm","platform-independent","serverless","serverless-framework","tencent-cloud","typescript","vecel"],"latest_commit_sha":null,"homepage":"https://cell.naily.cc","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/cellbang.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"custom":["https://i.loli.net/2020/06/28/aSXbPZBkv4I8ryq.jpg","https://i.loli.net/2020/06/28/YogOG6lWzt1Zjvs.jpg"]}},"created_at":"2020-06-07T14:19:00.000Z","updated_at":"2025-05-05T14:59:47.000Z","dependencies_parsed_at":"2022-07-17T14:19:32.054Z","dependency_job_id":"2ac9f6de-b61e-4bdb-8d72-13da9ec39bd8","html_url":"https://github.com/cellbang/cell","commit_stats":{"total_commits":1203,"total_committers":18,"mean_commits":66.83333333333333,"dds":0.2734829592684954,"last_synced_commit":"76f832bd87f8c2987f948bd1f93b21a352d2dddd"},"previous_names":["cellbang/cell","cellbang/malagu"],"tags_count":425,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cellbang%2Fcell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cellbang%2Fcell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cellbang%2Fcell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cellbang%2Fcell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cellbang","download_url":"https://codeload.github.com/cellbang/cell/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253584480,"owners_count":21931545,"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":["aliyun","aws","bff","dependency-injection","faas","microapp","microservice","orm","platform-independent","serverless","serverless-framework","tencent-cloud","typescript","vecel"],"created_at":"2024-08-01T06:01:41.140Z","updated_at":"2025-05-14T06:13:19.972Z","avatar_url":"https://github.com/cellbang.png","language":"TypeScript","readme":"English | [简体中文](./README.zh-cn.md)\n\n![Cell Logo](https://cellbang-lib.oss-cn-hangzhou.aliyuncs.com/Cell%20Logo%20Green.svg) \n# [Cell](https://malagu.cellbang.com/) \n\n[![GitHub License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/cellbang/cell/blob/master/LICENSE)\n[![npm Version](https://img.shields.io/npm/v/@celljs/core.svg?style=flat)](https://www.npmjs.com/org/celljs)\n[![npm Downloads](https://img.shields.io/npm/dm/@celljs/core.svg?style=flat)](https://www.npmjs.com/org/celljs)\n[![Build Status](https://github.com/cellbang/cell/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/cellbang/cell/actions?query=branch%3Amain+event%3Apush+event%3Aschedule)\n[![Stars](https://gitee.com/cellbang/malagu/badge/star.svg?theme=dark)](https://gitee.com/cellbang/malagu)\n[![star](https://gitcode.com/cellbang/cell/star/badge.svg)](https://gitcode.com/cellbang/cell)\n\nCell is a **Serverless First**, **Component-based**, and **Platform-independent** progressive application framework based on TypeScript.\n\n## Features\n\n- **Zero Configuration**: Out of the box, reduces configuration complexity.\n- **Based on TypeScript**: Provides strong type support, enhancing development efficiency.\n- **AI Support**: Provides AI basic abstraction and multi-vendor model service interface adaptation.\n- **Serverless First**: Optimizes Serverless application development.\n- **Cross-Platform**: Platform agnostic, flexible deployment.\n- **Full-Stack Support**: Front and back-end integration, compatible with various front-end frameworks.\n- **Microservices Architecture**: Supports building and managing microservices.\n- **Component-based**: Modular design, easy to extend and maintain.\n- **Plugin-based Tools**: Command line tools support plugins, enhancing functionality.\n- **Dependency Injection**: Simplifies dependency management between components.\n- **Aspect-Oriented Programming (AOP)**: Implements modularization of cross-cutting concerns.\n- **Integrated ORM**: Uses decorators for transaction management, simplifying database operations.\n- **Authentication and Authorization**: Supports OIDC authentication and OAuth2 authorization.\n- **State Management**: Uses rxjs for managing application state.\n- **Multiple Interface Styles**: Supports both REST and RPC interfaces.\n\n\n## Quick Start\n\n```bash\n# Install command line tool\nnpm install -g @celljs/cli\n\n# Initialize project\ncell init -o project-name\ncd project-name            # Enter project root directory\n\n# Run project\ncell serve\n\n# Deploy project\ncell deploy -m scf      # Deploy to Tencent Cloud Functions (SCF)\ncell deploy -m fc       # Deploy to Alibaba Cloud Function Compute (FC)\ncell deploy -m lambda   # Deploy to AWS Lambda\n```\n[![Quick Start](https://asciinema.org/a/474104.svg)](https://asciinema.org/a/474104?speed=2.5\u0026autoplay=1)\n\n## Samples\n\n- [Backend Sample](https://cloudstudio.net/templates/5QnU8uuBCE)\n- [React Sample](https://cloudstudio.net/templates/5QWIO8Jazj)\n- [Vue Sample](https://cloudstudio.net/templates/5QuWSgAul5)\n- [Shedule Sample](https://cloudstudio.net/templates/5BfaTPi5n5)\n- [Microservice Sample](https://cloudstudio.net/templates/5QxzzZvxvx)\n- [Accounts Sample](https://cloudstudio.net/templates/5QOrLlMcV6)\n\n## Documentation\n\n- [Introduction](https://cell.cellbang.com/guide/%E4%BB%8B%E7%BB%8D)\n- [Create the first application](https://cell.cellbang.com/guide/%E5%88%9B%E5%BB%BA%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%BA%94%E7%94%A8)\n- [Command line tools](https://cell.cellbang.com/guide/%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%B7%A5%E5%85%B7)\n- [Controller](https://cell.cellbang.com/guide/%E6%8E%A7%E5%88%B6%E5%99%A8)\n- [Database operations](https://cell.cellbang.com/guide/%E6%95%B0%E6%8D%AE%E5%BA%93typeorm)\n- [Microservice](https://cell.cellbang.com/dev/%E5%BE%AE%E6%9C%8D%E5%8A%A1)\n- [Authentication and authorization](https://cell.cellbang.com/guide/%E8%AE%A4%E8%AF%81%E4%B8%8E%E6%8E%88%E6%9D%83)\n- [Cloud Platform Adaptation](https://cell.cellbang.com/cloud/%E4%BA%91%E5%B9%B3%E5%8F%B0%E9%80%82%E9%85%8D)\n- [Dependency injection](https://cell.cellbang.com/guide/%E4%BE%9D%E8%B5%96%E6%B3%A8%E5%85%A5)\n- [Component design](https://cell.cellbang.com/guide/%E7%BB%84%E4%BB%B6%E8%AE%BE%E8%AE%A1)\n- [Front-end architecture](https://cell.cellbang.com/guide/%E5%89%8D%E7%AB%AF%E6%9E%B6%E6%9E%84)\n- [React development](https://cell.cellbang.com/dev/react)\n- [Front and back-end integrated development](https://cell.cellbang.com/dev/%E5%89%8D%E5%90%8E%E7%AB%AF%E4%B8%80%E4%BD%93%E5%8C%96%E5%BC%80%E5%8F%91)\n\n\n## Dependency injection\n\n```typescript\n// Class object injection\n@Component()\nexport class A {\n\n}\n\n@Component()\nexport class B {\n    @Autowired()\n    protected a: A;\n}\n\n// Configuration property injection\n@Component()\nexport class C {\n    @Value('foo') // Support EL expression syntax, such as @Value('obj.xxx'), @Value('arr[1]') etc.\n    protected foo: string;\n}\n```\n\n## Database operations\n\n```typescript\nimport { Controller, Get, Param, Delete, Put, Post, Body } from '@celljs/mvc/lib/node';\nimport { Transactional, OrmContext } from '@celljs/typeorm/lib/node';\nimport { User } from './entity';\n@Controller('users')\nexport class UserController {\n    \n    @Get()\n    @Transactional({ readOnly: true })\n    list(): Promise\u003cUser[]\u003e {\n        const repo = OrmContext.getRepository(User);\n        return repo.find();\n    }\n    @Get(':id')\n    @Transactional({ readOnly: true })\n    get(@Param('id') id: number): Promise\u003cUser | undefined\u003e {\n        const repo = OrmContext.getRepository(User);\n        return repo.findOne(id);\n    }\n    @Delete(':id')\n    @Transactional()\n    async remove(@Param('id') id: number): Promise\u003cvoid\u003e {\n        const repo = OrmContext.getRepository(User);\n        await repo.delete(id);\n    }\n    @Put()\n    @Transactional()\n    async modify(@Body() user: User): Promise\u003cvoid\u003e {\n        const repo = OrmContext.getRepository(User);\n        await repo.update(user.id, user);\n    }\n    @Post()\n    @Transactional()\n    create(@Body() user: User): Promise\u003cUser\u003e {\n        const repo = OrmContext.getRepository(User);\n        return repo.save(user);\n    }\n}\n```\n\n## Discuss group\n\n![群二维码.png](https://cellbang-lib.oss-cn-hangzhou.aliyuncs.com/%E7%BE%A4%E4%BA%8C%E7%BB%B4%E7%A0%81.png)\n\n## Status\n![Alt](https://repobeats.axiom.co/api/embed/59b39c98717cf1ae18b57f24d2efe91617e3a6f1.svg \"Repobeats analytics image\")\n\n","funding_links":["https://i.loli.net/2020/06/28/aSXbPZBkv4I8ryq.jpg","https://i.loli.net/2020/06/28/YogOG6lWzt1Zjvs.jpg"],"categories":["Repository"],"sub_categories":["Serverless"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcellbang%2Fcell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcellbang%2Fcell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcellbang%2Fcell/lists"}