Dart Edge 환경을 위해 특별히 설계된 가벼운 HTTP 클라이언트 패키지로, 서버리스 및 엣지 컴퓨팅 환경에서 효율적이고 안전한 HTTP 요청을 가능하게 합니다. invertase.io에서 개발했으며 Dart Edge 런타임과 원활하게 통합되어 클라우드 함수 및 엣지 배포용 최적화된 성능을 제공합니다. 표준 Dart HTTP 관행과 호환되면서도 깔끔하고 직관적인 API를 통해 HTTP 호출을 간소화합니다. 엣지 플랫폼에서 확장성 있고 낮은 지연 시간을 갖는 애플리케이션을 개발하는 개발자에게 이상적입니다.
사용 사례
에지 함수에서 HTTP 요청 보내기
서버리스 백엔드와의 통합
에지 네트워크에서 저지연 API 구축하기
클라우드 함수에서 외부 데이터 가져오기
엣지 환경에서의 API 통신 간소화
주요 기능
Dart Edge 런타임에 최적화됨
최소한의 오버헤드와 빠른 실행
표준 HTTP 메서드를 지원합니다
내장형 오류 처리
서버리스 환경을 위한 설계
적합한 대상
Dart Edge를 사용하는 개발자
서버리스 애플리케이션 빌더
엣지 컴퓨팅 프로젝트
클라우드 함수에서의 API 통합
고성능 웹 서비스
고려 사항
Dart Edge 환경에 제한됨
전통적인 Flutter 앱에 대한 지원 없음
Dart Edge 런타임이 필요합니다
클라이언트 측 모바일 앱에 적합하지 않습니다
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).
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:
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.