继续我们的 GitHub Star 系列!这是本系列的第四篇文章,之前的内容:
- GitHub Star 数量前 12 的开源无代码工具
- GitHub Star 数量前 15 的开源低代码项目
- GitHub Star 数量前 11 的开源内部工具
本期我们来盘点 CRUD 项目。在软件开发中,CRUD(创建、读取、更新、删除)是基本的数据操作,它们构成了大多数应用程序与数据交互的核心。
(如果你对这个概念还不太熟悉,推荐阅读:如何构建高效的 CRUD 应用程序?)
今天这篇文章我会向大家介绍这些在 GitHub 上的 CRUD 项目,从它们的受欢迎程度和功能性展开,帮助大家了解各种项目如何提升软件开发的效率!
先来看一个快速排名:
名次 | 项目 | Stars |
---|---|---|
1 | Appsmith | 27.2k |
2 | Refine | 27.2k |
3 | APIJSON | 17.1k |
4 | NocoBase | 11.7k |
5 | Library (DDD by Examples) | 4.7k |
6 | Flask-AppBuilder | 4.6k |
7 | CRUD (Nestjsx) | 4k |
8 | PHP-CRUD-API | 3.6k |
接下来,让我们正式开始吧!
Appsmith (32.9k stars)
GitHub | https://github.com/appsmithorg/appsmith |
---|---|
GitHub Star 数 | 32.9k |
GitHub 最近一次更新时间 | 当天 |
开源协议 | Apache 2.0 |
今年的活跃提交者数量 | 49 |
是否接受外部 PR | 是 |
官网 | https://www.appsmith.com/ |
文档 | https://docs.appsmith.com/ |
Appsmith 是一个开源平台,专门用于构建管理员面板、内部工具和仪表盘。它与超过25种数据库和各种API集成,支持从数据源到前端的快速应用构建。
主要特点
- 快速生成 CRUD 应用:Appsmith 可以通过简单的点击操作,自动为任何数据库生成 CRUD 界面,极大地简化了数据库应用的开发过程。
- 灵活的前端定制:提供了丰富的组件库,支持拖拽操作,用户可以不需要前端开发技能即可定制应用界面。
- 编写 JavaScript 进行扩展:用户可以在组件属性中编写 JavaScript 代码,进行更复杂的功能定制和动态数据更新。
应用场景
- 内部工具开发:快速开发企业内部需要的各种管理工具,如数据管理面板、客户支持仪表盘等。
- 敏捷数据管理应用:对于需要频繁更新数据的业务场景,Appsmith可以提供快速响应和易于管理的解决方案。
Refine (27.2k stars)
GitHub | https://github.com/refinedev/refine |
---|---|
GitHub Star 数 | 27.2k |
GitHub 最近一次更新时间 | 当天 |
开源协议 | MIT |
今年的活跃提交者数量 | 19 |
是否接受外部 PR | 是 |
官网 | https://refine.dev/ |
文档 | https://refine.dev/docs/ |
Refine 是一个基于 React 的元框架,专为 CRUD 重型的 Web 应用设计。它适用于企业内部工具、管理面板、仪表盘和 B2B 应用等多种用例。Refine 提供了无头架构支持,允许开发者将业务逻辑与用户界面和路由解耦,以实现高度定制化的应用程序。
主要特点
- 无头架构:Refine 的无头架构支持与各种自定义设计或 UI 框架(如 Ant Design 和 Material UI)集成,同时兼容多种平台(如 Next.js 和 React Native),提供灵活的路由接口,无需额外设置。
- 快速开发:Refine 提供一系列核心钩子和组件,简化了包括身份验证、访问控制、路由和状态管理在内的项目开发过程。
- 定制化与扩展性:支持广泛的后端服务连接器,包括 REST 和 GraphQL API,以及对多种数据库的原生支持,使得开发者可以根据需要选择合适的技术栈。
应用场景
- 企业内部工具:利用 Refine 构建企业内部的管理面板和工具,帮助简化数据管理和业务流程。
- 数据密集型应用:Refine 特别适用于需要处理大量数据的企业 B2B 应用,例如客户关系管理(CRM)系统和电子商务后台。
- 自定义企业应用:通过灵活的配置和扩展功能,Refine 允许企业根据特定需求定制应用,从而更好地支持业务操作。
APIJSON (17.1k stars)
GitHub | https://github.com/Tencent/APIJSON |
---|---|
GitHub Star 数 | 17.1k |
GitHub 最近一次更新时间 | 2天前 |
开源协议 | Apache 2.0 |
今年的活跃提交者数量 | 6 |
是否接受外部PR | 是 |
官网 | http://apijson.cn/ |
文档 | https://apijsondocs.readthedocs.io/en/latest/ |
APIJSON 是一个为 API 设计的基于 JSON 的通信协议和 ORM 库。它允许开发者通过定义 JSON 对象而非编写后端代码来自动生成后端接口和前端请求代码。APIJSON 特别适用于需要快速开发 API 的场景,通过减少前后端之间的沟通和 API 文档的编写工作,显著降低了开发成本。
主要特点
- 自动化 CRUD 操作:APIJSON 提供强大的 CRUD(创建、读取、更新、删除)功能,支持通过简单的 JSON 配置来实现复杂的查询,包括联表查询、复杂的筛选条件等。
- 安全性和灵活性:内置自动的权限验证和 SQL 注入防护机制,确保了 API 的安全。同时,APIJSON 支持版本管理,使得 API 的迭代不会影响现有系统。
- 高效率的数据处理:支持单个请求获取多种资源和数据形式,减少了多次请求的需要,优化了数据交互的效率。
应用场景
- 快速开发:适用于初创企业和中小企业快速构建原型和开发应用,特别是当项目需要快速迭代和频繁修改 API 时。
- 内部工具:企业内部的管理系统、监控系统等,可以利用 APIJSON 快速搭建后台管理界面。
- 教育与学习:由于 APIJSON 易于上手,它也适用于教育环境,帮助学生和初学者理解 API 的构建和使用。
NocoBase (11.7k stars)
GitHub | https://github.com/nocobase/nocobase |
---|---|
GitHub Star 数 | 11.7k |
GitHub 最近一次更新时间 | 当天 |
开源协议 | AGPL-3.0 |
今年的活跃提交者数量 | 29 |
是否接受外部PR | 是 |
官网 | https://www.nocobase.com/ |
文档 | https://docs.nocobase.com/ |
NocoBase 是一个高度可扩展的开源无代码/低代码平台,专为企业级业务应用和解决方案设计。从 CRUD(创建、读取、更新、删除)的角度来看,NocoBase 提供了强大的数据模型驱动方法,使其成为构建和管理复杂数据交互的理想选择。通过 NocoBase,企业可以快速部署具有复杂数据处理能力的应用,而无需深入后端开发,极大地提高了开发效率和系统的可扩展性。
主要特点
- 灵活的数据建模:NocoBase 允许用户定义详细的数据模型,包括各种属性和关系,这些模型直接映射到数据库结构,支持高度定制化的 CRUD 操作。
- 动态数据交互:通过所见即所得的界面,用户可以直接在前端配置和管理 CRUD 操作,无需编写后端代码。这包括添加、编辑、删除和查看数据记录。
- 自动化和插件支持:NocoBase 的插件架构支持自动化工作流,如表单验证、数据处理和视图更新,进一步简化了 CRUD 过程。
应用场景
- 内部管理系统:构建内部 CRM、项目管理系统等,支持复杂的数据管理和流程自动化。
- 企业级应用:适用于需要频繁进行数据操作的企业应用,如客户数据管理、库存跟踪和订单处理。
- 快速原型开发:快速验证业务想法和模型,特别适合需要快速迭代开发的创业环境。
Library (4.7k stars)
GitHub | https://github.com/ddd-by-examples/library |
---|---|
GitHub Star 数 | 4.7k |
GitHub 最近一次更新时间 | 2年前 |
开源协议 | MIT |
今年的活跃提交者数量 | 0 |
是否接受外部PR | 是 |
官网 | / |
文档 | / |
Library 实际上是一个实践示例,旨在帮助人们理解如何在真实世界中应用领域驱动设计(DDD)。Library 关注的是图书馆管理系统,类似于公共图书馆用来管理图书、读者、借阅和归还的系统。
项目使用模块化的单体架构,每个有界上下文分配到一个独立的包中,旨在通过丰富的领域逻辑和 CRUD 操作展示复杂的业务流程。这个项目不仅展示了如何构建复杂的业务逻辑,还通过实际代码展示了理论和实践之间的桥梁。
主要特点
- 丰富的领域模型:Library项目通过领域模型来处理复杂的业务逻辑,例如图书借阅过程,这个过程使用了六边形架构(hexagonal architecture)来分离领域和应用逻辑。
- CRUD 操作的灵活应用:如图书目录管理,项目应用了 CRUD 架构来处理相对简单的领域逻辑。
- 事件驱动的一致性:Library 利用事件来管理聚合之间的通信,支持即时和最终一致性的选择,展示了如何通过领域事件接口来实现这些功能。
应用场景
- 图书馆管理系统:管理图书的借阅、归还和保留等流程,适用于需要处理复杂业务逻辑和规则的系统。
- 教育和研究:作为DDD实现的示例,适用于学术研究和教育培训,帮助理解领域驱动设计在实际应用中的细节和挑战。
- 软件架构设计:为软件开发人员提供实际的架构设计经验,特别是在使用DDD和事件驱动架构方面。
Flask-AppBuilder (4.6k stars)
GitHub | https://github.com/dpgaspar/Flask-AppBuilder |
---|---|
GitHub Star 数 | 4.6k |
GitHub 最近一次更新时间 | 2天前 |
开源协议 | BSD-3-Clause |
今年的活跃提交者数量 | 11 |
是否接受外部PR | 是 |
官网 | / |
文档 | https://flask-appbuilder.readthedocs.io/en/latest/ |
Flask-AppBuilder 是一个基于 Flask 的快速应用开发框架,特别强调安全性和自动化 CRUD 操作生成。这个框架通过简化后端开发流程,使得用户能快速从数据模型生成完整的 CRUD 接口,极大地加快了开发速度并降低了复杂性。
主要特点
- 自动 CRUD 生成:Flask-AppBuilder 可以自动为您的数据模型生成 CRUD 页面和接口,包括表单和视图,从而简化了数据库操作的开发过程。
- 安全性和认证:提供了细粒度的安全配置,支持多种认证方式如数据库、LDAP、OAuth等,并自动处理权限和角色管理。
- 灵活的界面和组件:支持多种视图和组件,如图表、过滤器、日期选择器等,还有基于 Google Charts 的数据可视化功能。
应用场景
- 企业内部系统:适用于需要快速开发企业内部管理系统,如人事、库存、财务等系统。
- 数据管理应用:为需要复杂数据操作的应用提供强大的后台管理功能,如内容管理系统或客户关系管理系统。
- 教育和培训:由于其简单易学的特性,非常适合用于教学目的,帮助学习者快速理解 Web 开发和数据库操作。
CRUD (Nestjsx) (4k stars)
GitHub | https://github.com/nestjsx/crud |
---|---|
GitHub Star 数 | 4k |
GitHub 最近一次更新时间 | 2年前 |
开源协议 | MIT |
今年的活跃提交者数量 | 0 |
是否接受外部PR | 是 |
官网 | / |
文档 | https://github.com/nestjsx/crud/wiki#why |
CRUD (Nestjsx) 是一个基于 NestJS 框架的库,专为创建 RESTful API 而设计,提供了一套全面的 CRUD 功能。它使得开发者能够快速生成标准的 CRUD 操作接口,极大简化了 RESTful API 的开发过程。
CRUD (Nestjsx) 的设计目的是为了简化开发过程,通过提供一套标准化的方法来处理常见的数据操作任务,使得开发者可以将更多的精力投入到业务逻辑的实现上。
主要特点
- 自动化 CRUD 生成:通过简单的装饰器,自动为数据模型生成完整的 CRUD 操作,包括创建、读取、更新和删除功能。
- 灵活的查询解析:支持复杂的查询功能,如过滤、分页、排序以及与关系和嵌套关系的处理。
- 服务和数据库无关性:可以与任何数据库或服务配合使用,提供扩展性强的 CRUD 控制器。
- 丰富的配置选项:支持全局配置和验证,提供额外的帮助装饰器,简化开发流程。
应用场景
- 企业级应用:适用于需要快速开发企业后端服务的场景,特别是那些需要严格遵守 RESTful 标准的项目。
- 快速原型开发:可以迅速搭建原型,验证业务逻辑,加速开发周期。
PHP-CRUD-API (3.6k stars)
GitHub | https://github.com/mevdschee/php-crud-api |
---|---|
GitHub Star 数 | 3.6k |
GitHub 最近一次更新时间 | 2个月前 |
开源协议 | MIT |
今年的活跃提交者数量 | 1 |
是否接受外部PR | 是 |
官网 | / |
文档 | / |
PHP-CRUD-API 是一个单文件 PHP 脚本,通过简单的配置即可为 SQL 数据库添加一个完整的 REST API。它支持多种数据库系统,包括 MySQL/MariaDB, PostgreSQL, SQL Server, 和 SQLite,使其成为快速部署 API 的理想选择。
PHP-CRUD-API 提供了一种高效的方式来创建和管理数据库驱动的 REST API,无需编写大量的后端代码,是快速开发 Web 应用的有效工具。
主要特点
- 单文件部署:整个 API 通过一个 PHP 文件运行,无需复杂的安装或配置。
- 支持多数据库:与多种数据库兼容,通过简单的配置即可连接到不同类型的数据库。
- 丰富的功能:支持 CRUD 操作,自动文档生成(OpenAPI),复杂查询,以及数据的权限管理。
- 扩展性:支持中间件,自定义控制器,以及环境变量配置,可根据需求调整和扩展功能。
应用场景
- 快速原型开发:对于需要快速验证数据驱动应用的开发者,可以在短时间内部署并测试其 API。
- 小型项目:适用于小型或中型项目,需要快速且简单的后端解决方案。
总结
如果这些 CRUD 项目中的任何一个符合你的需求,请进一步探索和尝试使用它们!通过实际应用,你将更好地了解它们如何具体地优化和简化开发流程。
- Appsmith 和 Refine 通过其丰富的组件和灵活的数据管理,特别适合快速构建内部工具和管理面板。
- APIJSON 提供了一种几乎无需编码的方式来快速开发和迭代 API,非常适合需要快速验证概念的初创公司和开发者。
- NocoBase 则通过其数据模型驱动的方法,为复杂的企业级应用提供了强大的后台支持。
这些工具不仅适应了各种规模的项目需求,从小型项目到大型企业应用,还通过其开源的特性,提供了高度的定制性和扩展性。无论您是寻找一个可以快速部署的解决方案,还是需要一个可以深度定制的平台,这些 CRUD 项目都值得进一步探索!