本期我们来盘点 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

接下来,让我们正式开始吧!

GitHub 上 Stars 数量最多的 8 个开源 CRUD 项目_开源

Appsmith (32.9k stars)

GitHub 上 Stars 数量最多的 8 个开源 CRUD 项目_CRUD_02

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 上 Stars 数量最多的 8 个开源 CRUD 项目_开源_03

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 上 Stars 数量最多的 8 个开源 CRUD 项目_数据库_04

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 上 Stars 数量最多的 8 个开源 CRUD 项目_CRUD_05

GitHub

https://github.com/nocobase/nocobase

GitHub Star 数

11.7k

GitHub 最近一次更新时间

当天


开源协议

AGPL-3.0

今年的活跃提交者数量

29

是否接受外部PR

NocoBase 是一个高度可扩展的开源无代码/低代码平台,专为企业级业务应用和解决方案设计。从 CRUD(创建、读取、更新、删除)的角度来看,NocoBase 提供了强大的数据模型驱动方法,使其成为构建和管理复杂数据交互的理想选择。通过 NocoBase,企业可以快速部署具有复杂数据处理能力的应用,而无需深入后端开发,极大地提高了开发效率和系统的可扩展性。

主要特点

  • 灵活的数据建模:NocoBase 允许用户定义详细的数据模型,包括各种属性和关系,这些模型直接映射到数据库结构,支持高度定制化的 CRUD 操作。
  • 动态数据交互:通过所见即所得的界面,用户可以直接在前端配置和管理 CRUD 操作,无需编写后端代码。这包括添加、编辑、删除和查看数据记录。
  • 自动化和插件支持:NocoBase 的插件架构支持自动化工作流,如表单验证、数据处理和视图更新,进一步简化了 CRUD 过程。

应用场景

  • 内部管理系统:构建内部 CRM、项目管理系统等,支持复杂的数据管理和流程自动化。
  • 企业级应用:适用于需要频繁进行数据操作的企业应用,如客户数据管理、库存跟踪和订单处理。
  • 快速原型开发:快速验证业务想法和模型,特别适合需要快速迭代开发的创业环境。

Library (4.7k stars)

GitHub 上 Stars 数量最多的 8 个开源 CRUD 项目_github_06

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 上 Stars 数量最多的 8 个开源 CRUD 项目_数据库_07

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 上 Stars 数量最多的 8 个开源 CRUD 项目_CRUD_08

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 上 Stars 数量最多的 8 个开源 CRUD 项目_github_09

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 项目中的任何一个符合你的需求,请进一步探索和尝试使用它们!通过实际应用,你将更好地了解它们如何具体地优化和简化开发流程。

  • AppsmithRefine 通过其丰富的组件和灵活的数据管理,特别适合快速构建内部工具和管理面板。
  • APIJSON 提供了一种几乎无需编码的方式来快速开发和迭代 API,非常适合需要快速验证概念的初创公司和开发者。
  • NocoBase 则通过其数据模型驱动的方法,为复杂的企业级应用提供了强大的后台支持。

这些工具不仅适应了各种规模的项目需求,从小型项目到大型企业应用,还通过其开源的特性,提供了高度的定制性和扩展性。无论您是寻找一个可以快速部署的解决方案,还是需要一个可以深度定制的平台,这些 CRUD 项目都值得进一步探索!