當前位置: 妍妍網 > 碼農

Rust編寫的Web開發框架——同時支持Node和Python

2024-04-30碼農


隨著 Web 技術的迅速發展,Web 計畫開發變得愈發復雜,需要投入更多的時間和精力。因此,Web 開發者必須靈活運用最新的 Web 開發框架,以提高開發效率和應對不斷變化的需求。

最近,馬建倉在 Gitee 上看到一款以結構為核心的新一代網路框架——TEO, 適用於 Rust、Node.js 和 Python 的 Web 框架 ,能非常好的提高應用程式開發人員在使用 Web 伺服器和資料庫時的工作效率。值得一提的是,該計畫目前已經成為 Gitee 的 GVP 計畫。

計畫名稱: TEO
計畫作者: TEO 團隊
計畫授權證: Apache 2.0
計畫開源地址: https://gitee.com/teocloud/teo

TEO是什麽?

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

  • Teo schema:直觀且創新的模式語言,具有描述性和可讀性

  • Teo 伺服器:用 Rust 編寫的高效能核心以及 Node.js、Python 和 Rust 的 API 繫結

  • Teo CLI:一種 CLI 工具,用於讀取架構並執行作業,包括資料庫遷移、執行伺服器和播種數據

  • Teo 查詢客戶端:適用於多種平台和語言的自動生成的型別安全查詢構建器

  • 為什麽使用TEO?

    使用傳統的 Web 框架,開發人員需要聲明每個路由,編寫大量樣板程式碼來連線事物。不提供過濾、排序和分頁等常用功能。開發人員需要找到一種方法來實作它。開發人員編寫的函式越多,開發人員發現的重復項就越多。偵錯 SQL 查詢或 MongoDB 聚合非常麻煩且容易出錯。

    在現代前端開發中,從 API 響應實作數據型別和介面感覺更像是用另一種語言重新聲明這些模型型別。這些寶貴的時間可以節省下來。

    Teo 使開發人員可以輕松地使用聲明性模式語言設定 Web 伺服器。它還為不同的前端語言和框架生成客戶端。

    功能與特性

  • 極具創新的受GraphQL和Prisma啟發的結構定義

  • 自動的資料庫遷移

  • 支持Rust、Node.js和Python

  • 支持MySQL,PostgreSQL,SQLite和MongoDB

  • 生成的ORM型別定義

  • 生成的前端請求程式碼

  • 非常效率和高效能

  • 數據凈化、轉換和驗證

  • 內建的使用者session

  • 內建的許可權檢查

  • 先進後出的中介軟體

  • 自訂的路由處理

  • 快速開始

    典型的 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 將於 2024 年晚些時候得到支持。

    2. 架構您的數據
    Teo 擁有一種受 GraphQL 和 Prisma 啟發的創新且易於閱讀的模式語言。資料庫配置、伺服器配置、模型和列舉、路由處理常式都在其中聲明。所寫即所想,所見即所得,這真是太好了。
    Teo 采用您詳細描述的模式並為您進行資料庫遷移、輸入驗證和轉換。

    3. ORM 實體和伺服器程式碼
    自動生成的路由處理常式可以滿足 80% 的業務需求。總有一些自訂需求需要開發人員編寫程式碼來處理。Teo 是一個成熟的 Web 框架,而不是無程式碼或低程式碼工具。讓 Teo 完成繁重的工作並生成 ORM 實體。使用 Teo 的編程 API 以 Teo 支持的任何伺服器語言編寫程式碼。

    4. 為前端生成客戶端
    遺憾的是,前端開發人員總是在不同的前端客戶端中重復請求介面和參數。Teo 出現後就不再是這樣了。Teo 自動生成與 Teo 請求互動的前端程式碼。生成的客戶端是型別安全的,並且具有內建記錄。支持 TypeScript、javaScript、Swift、Kotlin、C# 和 Dart。客戶端可以生成到現有計畫或新包中。

    更多教程
    可存取TEO官網檢視詳細教程:https://docs.teocloud.io/