[Dart] Web Server Framework
Dart 語言伴隨 Flutter 面市, 多數是用來開發 Flutter App 使用. 隨著 Flutter 越趨受歡迎, Flutter App 越來越多元, 背後的 Dart 語言生態也逐漸豐富.
那, Dart 能否拿來開發 Web Server?
Performance
Dart Web Server 效能表現上如何?
- Dart vs Node.js: compare performance on HTTP server implementations / Sudo Null IT News
- Dart vs Go REST Server Performance Comparison Study •
從這兩篇來看, 效能雖比不上 Go, 但也和 Node.js 不相上下. 這樣的效能表現是相當的好消息.
內部轉型推動上,
- Flutter App 端 Dart SDK 先行開發使用, 介接舊系統服務.
- 日後新建 Web Server 時, 原 Dart 元件轉移到後端,
- 最終評估是否需要用 Go 或其他語言, 不介接舊系統, 重新開發 Web Server.
Framework
效能問題解決了, 那 Dart 是否有和 Go / Node.js 一樣方便的後端框架呢?
Project | updated | stars | forks | status | license |
---|---|---|---|---|---|
Conduit | Oct 30, 2022 | 294 | 274 | BSD-2 | |
Aqueduct | Sep 1, 2020 | 2.4k | 274 | archived | BSD-2 |
Lucifer | Dec 16, 2021 | 18 | 1 | - | MIT |
Jaguar | Apr 9, 2022 | 443 | 32 | - | |
Stream | Oct 18, 2022 | 220 | 22 | Apache-2 | |
Alfred | Aug 19, 2022 | 420 | 23 | MIT | |
Start | May 12, 2021 | 520 | 51 | - | MIT |
Vane | May 18, 2021 | 55 | 18 | - | BSD-3 |
Angel | Apr 27, 2021 | 1.1k | 73 | archived | MIT |
Shelf | Oct 26, 2022 | 677 | 111 | BSD-3 |
Updated: Oct 30, 2022
畢竟 Dart 主要生態不在後端開發, 相關框架遠比不上 Go / Node.js 一樣多元, 但從以上社群參考發展而來的框架看來還夠用.
可惜早期開發, 使用者和社群最活躍的 Aqueduct 和 Angle 陸續不再維護. 幸運的是 Conduit 繼承了 Aqueduct 繼續開發, 另外也有 Sheif 這樣輕快的框架. 考量專案更新活躍度, 考慮從 Conduit / Sheif 中擇一當作服務器框架.