搜索插件、代码仓与 APP 分类

插件详情v0.0.4+4

cloudflare_workers

编写并部署 Dart 函数到 Cloudflare Workers。

近 30 天下载
21
喜欢数
7
Pub 分数
100

安装插件

flutter pub add cloudflare_workers

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

一个 Flutter/Dart 包,使开发者能够编写并部署基于 Dart 的函数到 Cloudflare Workers,这是一个无服务器平台。它允许直接在 Dart 中构建轻量级、高性能的后端逻辑,并利用 Cloudflare 的全球边缘网络实现低延迟执行。该包可与 Flutter 项目无缝集成,支持通过 CLI 工具进行部署,并为边缘计算用例提供简化的开发流程。非常适合创建 API、中间件或实时服务,而无需管理服务器。该包由 invertase.io 维护,并托管在 GitHub 上。

适合场景

  • 无服务器 API
  • 边缘计算
  • 实时数据处理
  • 认证中间件
  • 动态内容分发

主要特点

  • Cloudflare Workers 的 Dart 支持
  • 无缝 Flutter 集成
  • 全局边缘部署
  • 轻量级函数执行
  • CLI 部署工具

适合对象

  • Flutter 开发者
  • 后端工程师
  • 边缘应用创建者
  • 无服务器爱好者
  • 全栈开发人员

使用建议

  • 仅限 Cloudflare Workers 平台
  • 需要理解边缘计算
  • 不支持非Cloudflare环境的原生支持
  • 依赖于 invertase.io 的维护
  • 可能需要为复杂部署进行额外配置

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

[!WARNING] This repository is no longer maintained and is left archived for educational purposes. Whilst an interesing project, there were too many issues around DX and stability (testing, compilation times etc) to take it any further.

Dart Edge (Experimental)

Run Dart on the Edge - supporting Vercel, Cloudflare Workers & Supabase Edge Functions (more coming soon).

Melos docs.page Chat on Discord

Documentation • Examples • License

About

Dart Edge is a project aimed at running Dart code on Edge functions, including support for platforms such as Cloudflare Workers, Vercel Edge Functions & Supabase Edge Functions (more to come).

import 'package:vercel_edge/vercel_edge_shelf.dart';
import 'package:shelf_router/shelf_router.dart';
import 'package:shelf/shelf.dart';

void main() {
  VercelEdgeShelf(
    fetch: (request) async {
      final app = Router();

      app.get('/user/<id>', (request, String id) async {
        return Response.ok('Welcome, $id');
      });

      app.all('/<ignored|.*>', (request) {
        return Response.notFound('Resource not found');
      });

      final handler = const Pipeline().addMiddleware(logRequests()).addHandler(app);
      return handler(request);
    },
  );
}

Edge functions are serverless functions which run on Edge networks, providing a number of benefits to server based environments (but also carried some limitations). Some of these benefits include:

  • ⚡ Decreased Latency: Edge functions run close to your users, reducing request latency (rather than running in a region(s)).
  • ⏱ Code Boot Times: Edge functions have minimal code boot times vs traditional serverless functions.
  • ✨ Platform APIs: Access powerful platform specific APIs, such as Cloudflare Workers HTMLRewriter, KV, Durable Objects & more.
  • 🌎 Runtime APIs: Edge functions run on the JavaScript V8 runtime, and provides a subset of standard Web APIs to access familar APIs such as Cache, Crypto, Fetch, etc.

This project provides Dart bindings to the Edge runtime APIs, allowing you to write Dart code which can be run on Edge functions. Your code is compiled to JavaScript and deployed to the Edge network (WASM support possible in the future).

Supported Platforms

We are working to enable Dart Edge to be deployed to many platforms as possible. Currently we support:

Please see the platform documentation for API status.

Other platforms we'll likely add support for are; Netlify Edge, Deno Deploy, Supabase Functions, AWS Lambda@Edge. Feel free to reach out if you'd like to see support for a specific platform.

FAQs

❓ Why is it experimental?

This project is a new concept, and we're still figuring out things such as the public APIs, testing, best practices for local development & deployment and other complicated matters such as error handling and debugging (since Dart is compiled to minified JavaScript). We use this project in production ourselves as a dog-fooding exercise, however we'll keep it as experimental until we're happy we've covered all bases of what you'd expect from Dart development.

We will probably be making breaking changes without following semver until we're happy for a major release. So please be aware of this.

There's also some unimplemented APIs which we're working on. Please see the API documentation for more information.

❓ What is the motivation for this project?

We're big fans of serverless environments, and are using both Cloudflare Workers & Vercel Edge Functions on our own projects. Some of these projects (including Zapp!) are written in Dart. We wanted to be able to write Dart code and deploy it to these platforms to allow for code sharing & collaboration between the team, hence this project started.

❓ What are the limitations of Edge functions?

If you're not familar with the concept of serverless functions, you should be aware of the limitations. Typically to run Dart as a backend service, you will most likely reach for Shelf, (or use a framework such as as ServerPod, Dart Frog etc) which are deployed to services such as Google Cloud Run, AWS etc. These setups run your code in a container, running one or more long lived processed to keep your service running. You can access the file system, use a single database connection, establish a long-lived WebSocket connection, etc.

Serverless functions on the Edge are different. They are invoked once-per-request and are not long lived. You cannot access the file system, and in some cases cannot establish long-lived connections (depending on the platform). Netlify has a great article explaining the differences.


Built and maintained by Invertase.

所属分类

依赖

依赖清单 4 项

  • edge^0.0.7
  • edge_runtime^0.0.4+2
  • js^0.6.5
  • js_bindings^0.1.0

源码仓库

使用此插件的项目

暂无相关数据。