All Projects → substantic → Rain

substantic / Rain

Licence: mit
Framework for large distributed pipelines

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Rain

Onepanel
The open and extensible integrated development environment (IDE) for computer vision with built-in modules for model building, automated labeling, data processing, model training, hyperparameter tuning and workflow orchestration.
Stars: ✭ 428 (-33.64%)
Mutual labels:  workflows, pipelines
dolphinnext
A graphical user interface for distributed data processing of high throughput genomics
Stars: ✭ 92 (-85.74%)
Mutual labels:  pipelines, workflows
Sparktorch
Train and run Pytorch models on Apache Spark.
Stars: ✭ 195 (-69.77%)
Mutual labels:  pipelines, distributed-computing
codeflare
Simplifying the definition and execution, scaling and deployment of pipelines on the cloud.
Stars: ✭ 163 (-74.73%)
Mutual labels:  pipelines, workflows
Argo Events
Event-driven workflow automation framework
Stars: ✭ 821 (+27.29%)
Mutual labels:  workflows, pipelines
modules
Repository to host tool-specific module files for the Nextflow DSL2 community!
Stars: ✭ 94 (-85.43%)
Mutual labels:  pipelines, workflows
St2
StackStorm (aka "IFTTT for Ops") is event-driven automation for auto-remediation, security responses, troubleshooting, deployments, and more. Includes rules engine, workflow, 160 integration packs with 6000+ actions (see https://exchange.stackstorm.org) and ChatOps. Installer at https://docs.stackstorm.com/install/index.html. Questions? https://…
Stars: ✭ 4,600 (+613.18%)
Mutual labels:  workflows
Fedml
A Research-oriented Federated Learning Library. Supporting distributed computing, mobile/IoT on-device training, and standalone simulation. Best Paper Award at NeurIPS 2020 Federated Learning workshop. Join our Slack Community:(https://join.slack.com/t/fedml/shared_invite/zt-havwx1ee-a1xfOUrATNfc9DFqU~r34w)
Stars: ✭ 512 (-20.62%)
Mutual labels:  distributed-computing
Azure Devops Cli Extension
Azure DevOps Extension for Azure CLI
Stars: ✭ 420 (-34.88%)
Mutual labels:  pipelines
Couler
Unified Interface for Constructing and Managing Workflows on different workflow engines, such as Argo Workflows, Tekton Pipelines, and Apache Airflow.
Stars: ✭ 405 (-37.21%)
Mutual labels:  distributed-computing
Go Streams
A lightweight stream processing library for Go
Stars: ✭ 615 (-4.65%)
Mutual labels:  pipelines
Community Skeleton
UVDesk Opensource Community Helpdesk Project built for all to make a full Ticketing Support System along with many more other features.
Stars: ✭ 540 (-16.28%)
Mutual labels:  workflows
Awesome Distributed Systems
Awesome list of distributed systems resources
Stars: ✭ 512 (-20.62%)
Mutual labels:  distributed-computing
Hazelcast
Open-source distributed computation and storage platform
Stars: ✭ 4,662 (+622.79%)
Mutual labels:  distributed-computing
Cadence
Cadence is a distributed, scalable, durable, and highly available orchestration engine to execute asynchronous long-running business logic in a scalable and resilient way.
Stars: ✭ 5,522 (+756.12%)
Mutual labels:  workflows
Bigartm
Fast topic modeling platform
Stars: ✭ 563 (-12.71%)
Mutual labels:  python-api
Pytelegrambotapi
Python Telegram bot api.
Stars: ✭ 4,986 (+673.02%)
Mutual labels:  python-api
Rosettastone
Hearthstone simulator using C++ with some reinforcement learning
Stars: ✭ 510 (-20.93%)
Mutual labels:  python-api
Finn
Fast Raft framework using the Redis protocol for Go
Stars: ✭ 534 (-17.21%)
Mutual labels:  distributed-computing
Atm
Auto Tune Models - A multi-tenant, multi-data system for automated machine learning (model selection and tuning).
Stars: ✭ 504 (-21.86%)
Mutual labels:  distributed-computing

Rain

PyPI Crates.io Build Status Gitter

Rain is an open-source distributed computational framework for processing of large-scale task-based pipelines.

Rain aims to lower the entry barrier to the world of distributed computing. Our intention is to provide a light yet robust distributed framework that features an intuitive Python API, straightforward installation and deployment with insightful monitoring on top.

Despite that this is an early release of Rain, it is a fully functional project that can be used out-of-the box. Being aware that there is still a lot that can be improved and added, we are looking for external users and collaborators to help to move this work forward. Talk to us online at Gitter or via email and let us know what your projects and use-cases need, submit bugs or feature requests at GitHub or even contribute with pull requests.

Features

  • Dataflow programming. Computation in Rain is defined as a flow graph of tasks. Tasks may be built-in functions, Python/C++/Rust code, or an external applications, short and light or long-running and heavy. The system is designed to integrate any code into a pipeline, respecting its resource requirements, and to handle very large task graphs (hundreds thousands tasks).

  • Easy to use. Rain was designed to be easy to deployed anywhere, ranging from a single node deployments to large-scale distributed systems and clouds ranging thousands of cores.

  • Rust core, Python/C++/Rust API. Rain is written in Rust for safety and efficiency and has a high-level Python API to Rain core infrastructure, and even supports Python tasks out-of-the-box. Rain also provides libraries for writing own tasks in C++ and Rust.

  • Monitoring. Rain is designed to support both online and postmortem monitoring.

    Dashboard screencast

Documentation

OverviewQuickstartUser guidePython APIExamples

Quick start

  • Download binary
$ wget https://github.com/substantic/rain/releases/download/v0.4.0/rain-v0.4.0-linux-x64.tar.xz
$ tar xvf rain-v0.4.0-linux-x64.tar.xz
  • Install Python API
$ pip3 install rain-python
  • Start server & a single local governor
$ ./rain-v0.4.0-linux-x64/rain start --simple
  • Rain "Hello world" in Python
from rain.client import Client, tasks, blob

client = Client("localhost", 7210)

with client.new_session() as session:
    task = tasks.Concat((blob("Hello "), blob("world!")))
    task.output.keep()
    session.submit()
    result = task.output.fetch().get_bytes()
    print(result)

Installation via cargo

If you have installed Rust, you can install and start Rain as follows:

$ cargo install rain_server

$ pip3 install rain-python

$ rain start --simple

Read the docs for more examples.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].