Rust 编写新一代 Web 框架 Teo,同时支持 Node 和 Python,速度惊人!

2024-03-08 22:28

本文主要是介绍Rust 编写新一代 Web 框架 Teo,同时支持 Node 和 Python,速度惊人!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大家好,我是渔夫。

今天分享主题,随着 Web 技术的迅速发展,开发变得愈发复杂,需要投入更多的时间和精力,今天介绍这款用 Rust 编写的新一代 Web 框架。

Web 项目开发越来越复杂,也让开发者带来很多挑战,与灵活运用最新的 Web 开发框架,以提高开发效率和应对不断变化的需求。

最近,在浏览 Github 看到一款以结构为核心的新一代网络框架——TEO,适用于 Rust、Node.js 和 Python 的 Web 框架,能非常好的提高应用程序开发人员在使用 Web 服务器和数据库时的工作效率。值得一提的是,该项目目前已经成为 Gitee 的 GVP 项目。

在这里插入图片描述

TEO 是什么?

Teo 是新一代 Web 框架。它由以下部分组成:

  • Teo schema:直观且创新的模式语言,具有描述性和可读性

  • Teo 服务器:用 Rust 编写的高性能核心以及 Node.js、Python 和 Rust 的 API 绑定

  • Teo CLI:一种 CLI 工具,用于读取架构并执行作业,包括数据库迁移、运行服务器和播种数据

  • Teo 查询客户端:适用于多种平台和语言的自动生成的类型安全查询构建器

为什么使用 TEO ?

传统 Web 框架

  • 样板代码多:开发者需要为每个路由编写重复的代码,这不仅耗时,也容易出错。

  • 缺乏内置功能:传统框架往往不提供过滤、排序和分页等常用功能,开发者需要自己实现这些功能。

  • 调试困难:SQL 查询和 MongoDB 聚合的调试过程复杂,容易出错,且耗时。

  • 类型和接口重复:在前端开发中,开发者需要重新声明后端模型的数据类型和接口,造成工作重复。

Teo 现代 Web 框架:

  • 减少样板代码:新一代框架通过提供更多的抽象和自动化工具,减少了开发者需要编写的样板代码。

  • 内置常用功能:现代框架通常内置了过滤、排序和分页等常用功能,使得开发者可以轻松实现这些功能,而不需要从头开始编写。

  • 新一代框架提供了更好的工具和接口来简化数据库查询和聚合的调试过程,降低了出错的可能性。

  • 统一数据类型和接口:现代框架允许开发者在服务器端定义数据模型和接口,然后自动生成客户端代码,减少了重复工作,并提高了前后端代码的一致性。

关于更多 Teo 可以去官网查阅。

功能与特性

下面来看看 Teo 的提供相关和特性都有哪些。

  • 极具创新的受 GraphQL 和 Prisma 启发的结构定义

  • 自动数据库迁移

  • 支持 Rust、Node.js 和 Python

  • 支持 MySQL、PostgreSQL、SQLite 和 MongoDB

  • 生成的 ORM 类型和接口

  • 为前端生成的查询客户端

  • 非常高效和高性能

  • 数据清理、转换和验证

  • 内置用户会话

  • 内置权限检查

  • 先进后出中间件

  • 自定义路由和处理程序

快速入门

典型的 Teo 工作流程由以下部分组成:

1. 选择您的语言堆栈

Teo 支持三种服务器端编程语言:Node.js、Python 和 Rust,可以选择你熟悉语言来开展工作。

  • Node.js 与 Web 技术配合得很好。

  • Python 非常适合与人工智能基础设施交互。

  • Rust 追求极致的性能,但它很难编写。

Teo 关心代码重复和生产力。因此,前端客户端是由 Teo 生成的。Teo 支持 5 种前端语言:TypeScript、Swift、Kotlin、C# 和 Dart。这几乎涵盖了主流的前端技术。轻松使用这些生成的客户端或将它们共享给前端开发人员。

注意:目前Swift、Kotlin、C# 和 Dart 暂时还不支持,但 Teo 团队将于 2024 年的一个目标,相信应该也很快得到支持了。

2. 架构您的数据

Teo 拥有一种受 GraphQL 和 Prisma 启发的创新且易于阅读的模式语言。数据库配置、服务器配置、模型和枚举、路由处理程序都在其中声明。所写即所想,所见即所得,这真是太好了。

Teo 采用您详细描述的模式并为您进行数据库迁移、输入验证和转换。

3. ORM 实体和服务器代码

自动生成的路由处理程序可以满足 80% 的业务需求。总有一些自定义需求需要开发人员编写代码来处理。Teo 是一个成熟的 Web 框架,而不是无代码或低代码工具。让 Teo 完成繁重的工作并生成 ORM 实体。使用 Teo 的编程 API 以 Teo 支持的任何服务器语言编写代码。

4. 为前端生成客户端

传统前端开发的问题:

  • 开发人员在多个前端项目中重复编写接口请求和参数处理代码,效率低且易出错。

Teo 框架的解决方案:

  • Teo 自动生成类型安全的前端代码,减少重复工作,提高开发效率。

  • 支持多种编程语言,适应不同的开发需求。

  • 集成到现有项目或创建新包,提供灵活性。

参考资料:

  • https://github.com/teocloud/teo

  • https://teocloud.io/

  • https://teocloud.io/blog

  • https://docs.teocloud.io/

  • https://gitee.com/teocloud/teo

我是渔夫,现在在国内某某云程序员,业余独立开发者,探索副业,生活、技术、非科班转码经验等相关文章,欢迎关注,和渔夫一起成长。

这篇关于Rust 编写新一代 Web 框架 Teo,同时支持 Node 和 Python,速度惊人!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/788604

相关文章

公共筛选组件(二次封装antd)支持代码提示

如果项目是基于antd组件库为基础搭建,可使用此公共筛选组件 使用到的库 npm i antdnpm i lodash-esnpm i @types/lodash-es -D /components/CommonSearch index.tsx import React from 'react';import { Button, Card, Form } from 'antd'

Python 字符串占位

在Python中,可以使用字符串的格式化方法来实现字符串的占位。常见的方法有百分号操作符 % 以及 str.format() 方法 百分号操作符 % name = "张三"age = 20message = "我叫%s,今年%d岁。" % (name, age)print(message) # 我叫张三,今年20岁。 str.format() 方法 name = "张三"age

(超详细)YOLOV7改进-Soft-NMS(支持多种IoU变种选择)

1.在until/general.py文件最后加上下面代码 2.在general.py里面找到这代码,修改这两个地方 3.之后直接运行即可

一道经典Python程序样例带你飞速掌握Python的字典和列表

Python中的列表(list)和字典(dict)是两种常用的数据结构,它们在数据组织和存储方面有很大的不同。 列表(List) 列表是Python中的一种有序集合,可以随时添加和删除其中的元素。列表中的元素可以是任何数据类型,包括数字、字符串、其他列表等。列表使用方括号[]表示,元素之间用逗号,分隔。 定义和使用 # 定义一个列表 fruits = ['apple', 'banana

Python应用开发——30天学习Streamlit Python包进行APP的构建(9)

st.area_chart 显示区域图。 这是围绕 st.altair_chart 的语法糖。主要区别在于该命令使用数据自身的列和指数来计算图表的 Altair 规格。因此,在许多 "只需绘制此图 "的情况下,该命令更易于使用,但可定制性较差。 如果 st.area_chart 无法正确猜测数据规格,请尝试使用 st.altair_chart 指定所需的图表。 Function signa

JavaWeb系列二十: jQuery的DOM操作 下

jQuery的DOM操作 CSS-DOM操作多选框案例页面加载完毕触发方法作业布置jQuery获取选中复选框的值jQuery控制checkbox被选中jQuery控制(全选/全不选/反选)jQuery动态添加删除用户 CSS-DOM操作 获取和设置元素的样式属性: css()获取和设置元素透明度: opacity属性获取和设置元素高度, 宽度: height(), widt

python实现最简单循环神经网络(RNNs)

Recurrent Neural Networks(RNNs) 的模型: 上图中红色部分是输入向量。文本、单词、数据都是输入,在网络里都以向量的形式进行表示。 绿色部分是隐藏向量。是加工处理过程。 蓝色部分是输出向量。 python代码表示如下: rnn = RNN()y = rnn.step(x) # x为输入向量,y为输出向量 RNNs神经网络由神经元组成, python

python 喷泉码

因为要完成毕业设计,毕业设计做的是数据分发与传输的东西。在网络中数据容易丢失,所以我用fountain code做所发送数据包的数据恢复。fountain code属于有限域编码的一部分,有很广泛的应用。 我们日常生活中使用的二维码,就用到foutain code做数据恢复。你遮住二维码的四分之一,用手机的相机也照样能识别。你遮住的四分之一就相当于丢失的数据包。 为了实现并理解foutain

python 点滴学

1 python 里面tuple是无法改变的 tuple = (1,),计算tuple里面只有一个元素,也要加上逗号 2  1 毕业论文改 2 leetcode第一题做出来

Python爬虫-贝壳新房

前言 本文是该专栏的第32篇,后面会持续分享python爬虫干货知识,记得关注。 本文以某房网为例,如下图所示,采集对应城市的新房房源数据。具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。接下来,跟着笔者直接往下看正文详细内容。(附带完整代码) 正文 地址:aHR0cHM6Ly93aC5mYW5nLmtlLmNvbS9sb3VwYW4v 目标:采集对应城市的