render_workflows 0.1.0 copy "render_workflows: ^0.1.0" to clipboard
render_workflows: ^0.1.0 copied to clipboard

Unofficial Dart client for Render Workflows: start, watch and cancel task runs. Not affiliated with or endorsed by Render.

render_workflows #

⚠️ UNOFFICIAL #

An independent, community-built project. Not affiliated with, endorsed by, or supported by Render.

Render's own SDKs and documentation are at render.com/docs.

Render  Built for Render.

The Render name and logo are trademarks of Render Services, Inc. The mark is reproduced unaltered from Render's brand kit, referentially, to identify the service these packages work with — not to suggest any endorsement.

A Dart client for Render Workflows — start, watch and cancel task runs.

Mirrors Render's official TypeScript SDK, so its documentation carries over:

final render = Render();                       // reads RENDER_API_KEY

final run = await render.workflows.runTask(
  'my-workflow/sumSquares',
  [[2, 3, 4]],
);
print(run.result);                             // 29

render.close();

Writing the tasks in Dart too #

This package triggers tasks. It says nothing about what language they are written in — by default that is TypeScript or Python, the two languages Render's own SDK supports.

The tasks themselves can also be Dart, with render-dart (npm). It compiles task bodies to JavaScript and registers them through Render's SDK, and compiles anything needing dart:io, dart:ffi or isolates to a native executable called from those tasks:

npx render-dart init my-workflow

So the whole round trip can be Dart: this package starts a run, render-dart runs the task body, and render_api manages the service. They are independent — use this one against Python tasks quite happily.

render-dart (npm) Writing tasks in Dart
render_workflows (this) Running them
render_api Managing the services

Why this is separate from render_api #

Render splits the same way: @renderinc/sdk runs tasks, @api/render-api covers the REST surface. Workflow services — creating them, deploying versions, listing task definitions — are plain REST and live in package:render_api.

The split is also practical: render_api generates 208 operations, and a Flutter app that only triggers a task shouldn't have all of them crowding autocomplete.

Unlike Render's two packages, this one depends on render_api rather than duplicating the transport. Theirs are independent only because two different toolchains produced them.

What it adds over the raw endpoints #

runTask / waitFor Polls to completion. Works on Flutter Web, where SSE does not
listTaskRunsStream Walks cursors for you
4 MB input cap Checked locally, so an oversized payload fails by name
TaskRunStatus Treats terminality as data — the API defines both completed and succeeded
Errors Typed, and carrying a hint. Render answers 500 for an unknown task run id, not 404

Method names #

startTask, runTask, getTaskRun, cancelTaskRun, listTaskRuns, taskRunEvents — exactly as the TypeScript SDK names them. waitFor and listTaskRunsStream are additions where Dart offers something TypeScript has no equivalent for.

Watching runs #

runTask and waitFor poll, and work everywhere.

taskRunEvents streams server-sent events instead, but will not work on Flutter Web with the default HTTP clientpackage:http's BrowserClient buffers whole responses. Inject a streaming client (package:fetch_client) there, or poll.

Testing #

dart test                      # offline, no credentials needed
dart run example/smoke.dart    # live, needs RENDER_API_KEY
1
likes
0
points
254
downloads

Publisher

verified publisherhiveright.tech

Weekly Downloads

Unofficial Dart client for Render Workflows: start, watch and cancel task runs. Not affiliated with or endorsed by Render.

Repository (GitHub)
View/report issues

Topics

#render #workflows #tasks #background-jobs

License

unknown (license)

Dependencies

http, meta, render_api

More

Packages that depend on render_workflows