Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/celest-dev/celest
The Flutter cloud platform
https://github.com/celest-dev/celest
backend cloud dart flutter serverless
Last synced: 5 days ago
JSON representation
The Flutter cloud platform
- Host: GitHub
- URL: https://github.com/celest-dev/celest
- Owner: celest-dev
- License: other
- Created: 2023-11-13T22:17:01.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-04-23T14:42:36.000Z (9 months ago)
- Last Synced: 2024-04-25T10:20:28.361Z (9 months ago)
- Topics: backend, cloud, dart, flutter, serverless
- Language: Dart
- Homepage: https://celest.dev
- Size: 1.83 MB
- Stars: 203
- Watchers: 4
- Forks: 11
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
## Celest
Celest is the Flutter cloud platform. We enable Flutter and Dart developers to declaratively define their backend infrastructure in Dart.
And to stay up-to-date on the future of Celest, including full server-side rendered Flutter apps, join our newsletter at [celest.dev](https://www.celest.dev/#stay-up-to-date).
## Getting Started
To get started with Celest, you'll need to configure your development environment so that you have Flutter and the Celest CLI installed on your machine.
1. Install [Flutter](https://docs.flutter.dev/get-started/install) from the official website
2. [Download](https://celest.dev/download) and install the Celest CLI### Creating a project
Once you have the CLI installed, you can create a new project by running the following command:
```bash
$ celest init
```
You can run this command from within your Flutter project which will create a new `celest/` directory for your project. Or you can run
this in another directory to have a standalone Celest project.Once you have a project, run `celest start` to start a local development environment.
```bash
$ celest start
✓ Celest is running on http://localhost:7777
```This command will start a local server which will run in the background as you write your backend logic. As you make changes to the files in the `celest/` directory,
the server will hot-reload those changes so you can see them live.To interact with the running environment, Celest will generate a Dart client which you can use in any Dart or Flutter project. This client
is generated in the `client/` directory of your `celest/` folder. As you make changes in the local environment, this client will be updated to reflect those changes.### Example
Here is an example of a simple Celest function:
```dart
import 'package:celest/celest.dart';@cloud
Future sayHello(String name) async {
print('Saying hello to $name');
return 'Hello, $name';
}
```This function can be called from a Dart project like so:
```dart
import 'package:my_project_client/my_project_client.dart';Future main() async {
celest.init(environment: CelestEnvironment.local);
final response = await celest.functions.sayHello('World');
print(response); // Hello, World
}
```## What's Next?
In addition to Dart cloud functions, Celest offers authentication and database services out-of-the-box. To learn more about these features,
and to see what else you can do with cloud functions, visit our [docs](https://celest.dev/docs) and explore the different examples and
packages available in this repo.## Examples
[![Celest](https://github.com/celest-dev/celest/actions/workflows/examples.yaml/badge.svg)](https://github.com/celest-dev/celest/actions/workflows/examples.yaml)
| Example | Description |
| ------------------------------ | ----------------------------------------------------------------------------------------- |
| [Firebase](examples/firebase/) | Showcases how to integrate Firebase Auth with Celest. |
| [Gemini](examples/gemini/) | Uses Google's [Gemini](https://ai.google.dev/) API for chat completion. |
| [OpenAI](examples/openai/) | Uses the [OpenAI](https://platform.openai.com/docs/introduction) API for chat completion. |
| [Supabase](examples/supabase/) | Showcases how to integrate Supabase Auth with Celest. |
| [Tasks](examples/tasks/) | Uses Celest Data to build a simple task tracking app with persistence. |## Packages
| Package | Description | Pub | Checks |
| -------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [celest](packages/celest/) | The main package for defining Celest backends. | | [![Celest](https://github.com/celest-dev/celest/actions/workflows/celest.yaml/badge.svg)](https://github.com/celest-dev/celest/actions/workflows/celest.yaml) |
| [celest_ast](packages/celest_ast/) | A structured representation of Celest projects. | | [![Celest AST](https://github.com/celest-dev/celest/actions/workflows/celest_ast.yaml/badge.svg)](https://github.com/celest-dev/celest/actions/workflows/celest_ast.yaml) |
| [celest_auth](packages/celest_auth/) | The authentication and authorization runtimes for Celest. | | [![Celest Auth](https://github.com/celest-dev/celest/actions/workflows/celest_auth.yaml/badge.svg)](https://github.com/celest-dev/celest/actions/workflows/celest_auth.yaml) |
| [celest_cloud](packages/celest_cloud/) | API contracts and Dart clients for the Celest Cloud platform. | | [![Celest Cloud](https://github.com/celest-dev/celest/actions/workflows/celest_cloud.yaml/badge.svg)](https://github.com/celest-dev/celest/actions/workflows/celest_cloud.yaml) |
| [celest_core](packages/celest_core/) | Core types and utilities shared between Celest packages. | | [![Celest Core](https://github.com/celest-dev/celest/actions/workflows/celest_core.yaml/badge.svg)](https://github.com/celest-dev/celest/actions/workflows/celest_core.yaml) |## Services
| Service | Description | Pub | Checks |
| ------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [celest_cloud_auth](packages/celest_cloud_auth/) | A Dart-native authentication and authorization solution built on [Cedar](https://github.com/celest-dev/cedar-dart) and Celest Data. | | [![Celest Cloud Auth](https://github.com/celest-dev/celest/actions/workflows/celest_cloud_auth.yaml/badge.svg)](https://github.com/celest-dev/celest/actions/workflows/celest_cloud_auth.yaml) |## License
This repo is licensed under the [BSD-2-Clause-Patent](https://spdx.org/licenses/BSD-2-Clause-Patent.html) license. See [LICENSE.md](LICENSE.md) for the full text.
## Connect with us
- Follow our [Twitter](https://twitter.com/Celest_Dev) account.
- Schedule a meeting or chat with us live: [Contact](https://celest.dev/contact)