Using Google Cloud
Dart servers can use many Google Cloud products, often with the help of the pre-packaged Docker Official Images for Dart. For information about creating HTTP servers with Dart, see the Write HTTP servers page.
For information about other Google APIs (including Firebase) that you might want to use from Dart code, see the Google APIs page.
To run Dart in the Cloud, we recommend using serverless computing solutions.
You can use Cloud Run’s flexible container support, combined with Dart’s Docker images, to run server-side Dart code. Creating scalable, high performance APIs and event-driven apps are good use cases for Cloud Run’s serverless platform, which frees developers from managing infrastructure.
Examples of Dart servers implemented to run on Cloud Run are in the dart-lang/samples/repo.
For more information about using Cloud Run, see the documentation for building and deploying a service in other languages.
Functions Framework for Dart
The Functions Framework is a FaaS (Function as a Service) framework that makes it easy to write Dart functions instead of server applications for handling web requests. Using the framework, you can create functions that handle HTTP requests and CloudEvents and deploy them to Google Cloud.
The Dart Functions Framework is a community-supported project.
For more information, see the README.
Depending on your needs, you may also want to consider running Dart on the following Google Cloud compute platforms.
To run Dart code on Compute Engine, use Compute Engine’s support for running containers, combined with Dart’s Docker images.
For more information, see the Compute Engine documentation for using software containers.
To run Dart on clusters of Compute Engine instances, use Google Kubernetes Engine (GKE).
For more information, see the GKE overview.
App Engine support for Dart is incomplete and requires the
App Engine flexible environment, which does not
autoscale to zero instances, so we recommend Cloud Run for new
server-side Dart code.
If you want to use App Engine, consider using the