{"id":23290803,"url":"https://github.com/cellbang/cellbang","last_synced_at":"2025-08-21T22:31:51.347Z","repository":{"id":56899811,"uuid":"278602949","full_name":"cellbang/cellbang","owner":"cellbang","description":"Cellbang 是基于 Malagu + Theia IDE 开发的一个云文档平台。","archived":false,"fork":false,"pushed_at":"2022-09-07T14:16:10.000Z","size":1186,"stargazers_count":26,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-10-15T04:32:49.339Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://cloud.cellbang.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","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},"funding":{"custom":["https://i.loli.net/2020/06/28/aSXbPZBkv4I8ryq.jpg","https://i.loli.net/2020/06/28/YogOG6lWzt1Zjvs.jpg"]}},"created_at":"2020-07-10T10:12:57.000Z","updated_at":"2023-11-20T07:54:24.000Z","dependencies_parsed_at":"2022-08-21T02:20:38.233Z","dependency_job_id":null,"html_url":"https://github.com/cellbang/cellbang","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cellbang%2Fcellbang","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cellbang%2Fcellbang/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cellbang%2Fcellbang/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cellbang%2Fcellbang/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cellbang","download_url":"https://codeload.github.com/cellbang/cellbang/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230005364,"owners_count":18158387,"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":[],"created_at":"2024-12-20T05:12:31.311Z","updated_at":"2024-12-20T05:12:31.966Z","avatar_url":"https://github.com/cellbang.png","language":"TypeScript","funding_links":["https://i.loli.net/2020/06/28/aSXbPZBkv4I8ryq.jpg","https://i.loli.net/2020/06/28/YogOG6lWzt1Zjvs.jpg"],"categories":[],"sub_categories":[],"readme":"# **Cellbang设计说明**\n\n# **产品定位**\n\n**一切皆文档，应用亦文档**\n\n- 提供各种类型文件的高效的在线协作管理能力，以提升企业文件协作和共享效率；\n\n- 未来可提供通过文件进行配置即能实现的低代码应用能力，即应用亦文档，这是框架设计之初便存留的适配考量；\n\n- 基于自研技术，实现多平台一键部署的能力，适应serverless大趋势；\n\n- 由于IDE的核心能力是Theia IDE内核提供的，即意味着产品不仅仅提供文件协作管理能力，还具备在线研发能力：\n\n  - 注1：其中基于Theia扩展了插件体系（仅做演示使用，暂未开放）；\n  - 注2：若要提供研发能力，还需要有虚拟在线运行环境的能力（即terminal），目前暂未实现；\n\n- 由于考虑到vscode的生态优势，未来可能考虑将IDE核心从Theia切换过去，这样产品就天然拥有所有vscode的能力（vscode插件同时支持在线虚拟文件系统，配合虚拟terminal，将有更多的想象空间）\n\n\n# **架构图**\n\n\u003cimg width=\"1028\" alt=\"1662558708520\" src=\"https://user-images.githubusercontent.com/41881490/188895853-c6e6cbd2-c9ed-4ab0-9cfa-974b2476af74.png\"\u003e\n\n\n# **现有能力清单**\n\n## **功能清单**\n\n- 支持用户登录和身份认证（默认github），同时支持oauth2登录，即具备多平台授权登录能力；\n\n- 可读写IDE的配置并持久化，可读写文件（包括代码）并持久化；\n\n- - 支持多种文件预览能力，包括md/txt等文本文件、png/gif等各种图片类型、xlsx等各种表格类型、pdf文件、各种快捷文件等（由核心非插件提供）；\n  - 工作空间管理能力，打开/保存/另存为等（由核心非插件提供）；\n  - 多种文件（除了代码文件，还包括docx/xlsx等文档文件）编辑能力及扩展能力（由核心非插件提供）；\n  - 多文件比较能力（由核心非插件提供）；\n\n- 现场还原能力\n\n  - 关闭当前浏览器窗口时有未保存文件的友好提示，同时下次打开地址时，基于workspace的概念，会保留现有已打开文件状态，即若某文件未保存则不会保留其未保存内容，但是依然保留其打开状态；\n  - 同时拥有自动保存能力，即自动保存配置打开后，会自动保存未保存文件；\n\n- 文件上传能力\n\n  - 通过文件分片上传的技术，提供可靠稳定的大文件上传能力；\n  - 可拖拽上传本地文件或目录；\n\n- 提供国际化能力；\n\n- 支持多人在线协作能力，支持多种权限分享能力\n\n  - 可下载文件，可复制下载链接\n  - 链接分享支持开启和关闭\n  - 要求密码分享\n\n\n\n## **非功能清单**\n\n- 多租隔离\n\n  - 已实现不同租户请求不同，配合平台设置【单实力单并发】即可实现不同租户的函数实例隔离；\n\n  - 数据存储隔离当前默认配置为目录级别隔离（即不同目录数据隔离），同时支持桶隔离（即不同的租户数据在不同的oss桶里）和服务账号隔离（即不同的租户数据在不同的serverless平台账户中）的组合配置；\n\n  - 实现多租户安全，即：\n\n    - A租户是否登录都无法查看B租户文件数据；\n    - B租户分享文件给A租户的时候，有多级安全隔离：指定链接查看，根据密码查看等\n\n- IDE秒开特性\n\n  - 前端通过gzip压缩+缓存优化，优化结果如下 \n\n|            | requests | transferred | resources |\n| ---------- | -------- | ----------- | --------- |\n| cellbang   | 142      | 705KB       | 12.4MB    |\n| github.dev | 2000+    | 25.1MB      | 66.6MB    |\n\n\n\n  - 后端通过优化冷热启动效率实现：\n\n    - 函数代码打包尽可能压缩，目前优化大小控制于2-3M内；、\n    - 同租户rpc请求进行合并，实现对服务实例的节约\n\n- 优化资源成本\n\n  - 前后端使用基于http协议的jsonrpc协议进行通信，提升通信效率，同时实现动态合并请求；\n  - 支持多云部署，平台不锁定，一键部署多平台（自研能力）\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcellbang%2Fcellbang","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcellbang%2Fcellbang","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcellbang%2Fcellbang/lists"}