{"id":20129067,"url":"https://github.com/theyakka/cumulus","last_synced_at":"2025-04-09T15:53:49.677Z","repository":{"id":113877443,"uuid":"127591588","full_name":"theyakka/cumulus","owner":"theyakka","description":"Cumulus is a high-level Dart framework that makes developing application logic on top of Firebase quick and simple.","archived":false,"fork":false,"pushed_at":"2018-07-26T20:01:18.000Z","size":18,"stargazers_count":14,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-23T18:11:26.185Z","etag":null,"topics":["dart","firebase","firebase-functions","routing"],"latest_commit_sha":null,"homepage":"https://theyakka.com","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/theyakka.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-01T03:00:27.000Z","updated_at":"2020-06-16T17:04:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"a2522e05-cb6c-40e3-8390-a6d02915b8da","html_url":"https://github.com/theyakka/cumulus","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theyakka%2Fcumulus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theyakka%2Fcumulus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theyakka%2Fcumulus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theyakka%2Fcumulus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theyakka","download_url":"https://codeload.github.com/theyakka/cumulus/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248064569,"owners_count":21041859,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dart","firebase","firebase-functions","routing"],"created_at":"2024-11-13T20:31:49.266Z","updated_at":"2025-04-09T15:53:49.658Z","avatar_url":"https://github.com/theyakka.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cimg src=\"https://storage.googleapis.com/product-logos/logo_cumulus.png\" align=\"center\" width=\"160\"\u003e\n\nCumulus is a high-level framework that makes developing application logic on top of Firebase quick and simple.\n\n[![Build Status](https://travis-ci.org/theyakka/cumulus.svg?branch=master)](https://travis-ci.org/theyakka/cumulus)\n[![Dart Version](https://img.shields.io/badge/Dart-2.0+-lightgrey.svg)](https://dartlang.org/)\n\n# Features\nCumulus has the following bonza features:\n- Simple, straightforward configuration of function endpoints\n- Routable endpoints\n- Common interface for routable and non-routable endpoints\n- Named parameters for routable endpoints (e.g.: `/users/:id`)\n- Querystring parameter parsing\n\n# Installing\n\n**Cumulus requires Dart 2.0+.**. Cumulus requires the new `build_runner` system to compile with dart2js/dartdevc and these are not available in the Dart 1.x toolchain. You should add the following to your pubspec:\n```yaml\nenvironment:\n  sdk: '\u003e= 2.0.0-dev \u003c3.0.0'\n```\n\nTo install, add the following line to the `dependencies` section of your `pubspec.yaml` file:\n\n```yaml\ndependencies:\n  ...\n  cumulus: ^1.0.0\n```\n\nYou can then import cumulus using:\n\n```dart\nimport 'package:cumulus/cumulus.dart';\n```\n\n# Getting started\n\nTBD - how to set up a project using dart\n\nNext, we need to create an instance of a `CumulusApp` in the `main` function of your `index.dart` file. Something like:\n```dart\nvoid main() {\n  CumulusApp app = new CumulusApp.appWithDefaults();\n  app.addHandler(\"/welcome\", handler: welcomeHandler);\n}\n```\n\nOnce this is done, you can define your handlers. For now we will add it to the `index.dart` file directly. Our handler looks like:\n```dart\nwelcomeHandler(HandlerContext context, Parameters parameters) {\n  final res = context.response;\n  res.statusCode = 200;\n  res.headers.contentType = ContentType.JSON;\n  res.write(json.encode({\n    \"message\": \"HELLO!!!!\",\n  }));\n  res.close();\n}\n```\n\nAt this point you can run the build and then deploy your function.\n\n# FAQ\n\n## Why should I use this and not ____?\n\nWe prefer you use whatever you want. Cumulus is, most likely, no better or worse than the alternatives.\n\nCumulus was designed and developed because of an actual need to make working with Firebase Functions easier and faster. Developing apps should be fun, not tedious boilerplate and confusing templates. Hopefully Cumulus works for you personally.\n\nGive it a try and if you like it, let us know! Either way, we love feedback.\n\n## Has it been tested in production? Can I use it in production?\n\nThe code here is built on top of (mostly) two other libraries: \n- [dazza](https://github.com/theyakka/dazza)\n- [firebase-functions-interop](https://github.com/pulyaevskiy/firebase-functions-interop)\n\nThe Yakka [website](https://theyakka.com) uses this code in production and Yakka uses it for both internal and external clients as well. That said, code is always evolving. We plan to keep on using it in production but we also plan to keep on improving it. If you find a bug, let us know!\n\n## Who the f*ck is Yakka?\n\nYakka is the premier Flutter agency and a kick-ass product company. We focus on the work. Our stuff is at [http://theyakka.com](http://theyakka.com). Go check it out.\n\n# Outro\n\n## Credits\n\nAgain, without the [firebase-functions-interop](https://github.com/pulyaevskiy/firebase-functions-interop) library by [Anatoly Pulyaevskiy](https://github.com/pulyaevskiy) none of this would be possible. Go and star the project!\n\nCumulus is sponsored, owned and maintained by [Yakka LLC](http://theyakka.com). Feel free to reach out with suggestions, ideas or to say hey.\n\n### Security\n\nIf you believe you have identified a serious security vulnerability or issue with Cumulus, please report it as soon as possible to apps@theyakka.com. Please refrain from posting it to the public issue tracker so that we have a chance to address it and notify everyone accordingly.\n\n## License\n\nCumulus is released under a modified MIT license. See LICENSE for details.\n\n\u003cimg src=\"https://storage.googleapis.com/yakka-logos/logo_wordmark.png\" align=\"center\" width=\"70\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheyakka%2Fcumulus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheyakka%2Fcumulus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheyakka%2Fcumulus/lists"}