taskr - A fast, concurrency-focused task automation tool.

  •        14

Taskr is a highly performant task runner, much like Gulp or Grunt, but written with concurrency in mind. With Taskr, everything is a coroutine, which allows for cascading and composable tasks; but unlike Gulp, it's not limited to the stream metaphor. Taskr is extremely extensible, so anything can be a task. Our core system will accept whatever you throw at it, resulting in a modular system of reusable plugins and tasks, connected by a declarative taskfile.js that's easy to read.

https://github.com/lukeed/taskr

Tags
Implementation
License
Platform

   




Related Projects

grunt-perfbudget - Grunt task for performance budgeting.

  •    Javascript

grunt-perfbudget is a Grunt.js task for enforcing a performance budget (more on performance budgets). It uses the wonderful webpagetest.org and the WebPagetest API Wrapper for NodeJS created by Marcel Duran. grunt-perfbudget uses either a public or private instance of WebPagetest to perform tests on a specified URL. It compares test results to budgets you specify. If the budget is met, the tasks successfully completes. If it the page exceeds your performance budgets, the task fails and informs you why.

ava - Futuristic JavaScript test runner

  •    Javascript

Even though JavaScript is single-threaded, IO in Node.js can happen in parallel due to its async nature. AVA takes advantage of this and runs your tests concurrently, which is especially beneficial for IO heavy tests. In addition, test files are run in parallel as separate processes, giving you even better performance and an isolated environment for each test file. Switching from Mocha to AVA in Pageres brought the test time down from 31 to 11 seconds. Having tests run concurrently forces you to write atomic tests, meaning tests don't depend on global state or the state of other tests, which is a great thing!

rayon - Rayon: A data parallelism library for Rust

  •    Rust

Rayon is a data-parallelism library for Rust. It is extremely lightweight and makes it easy to convert a sequential computation into a parallel one. It also guarantees data-race freedom. (You may also enjoy this blog post about Rayon, which gives more background and details about how it works, or this video, from the Rust Belt Rust conference.) Rayon is available on crates.io, and API Documentation is available on docs.rs. Parallel iterators take care of deciding how to divide your data into tasks; it will dynamically adapt for maximum performance. If you need more flexibility than that, Rayon also offers the join and scope functions, which let you create parallel tasks on your own. For even more control, you can create custom threadpools rather than using Rayon's default, global threadpool.


Grunt - The JavaScript Task Runner

  •    Javascript

Grunt is a Javascript task runner. It automates work you have to do when performing repetitive tasks like minification, compilation, unit testing, linting, etc. The Grunt ecosystem is huge and it's growing every day. With literally hundreds of plugins to choose from.

start - :red_circle: Functional task runner for Node.js

  •    TypeScript

Coming soon. All the packages in this repository are released under the terms of the MIT License.

greenlet - Lightweight in-process concurrent programming

  •    C

The greenlet package is a spin-off of Stackless, a version of CPython that supports micro-threads called "tasklets". Tasklets run pseudo-concurrently (typically in a single or a few OS-level threads) and are synchronized with data exchanges on "channels". A "greenlet", on the other hand, is a still more primitive notion of micro-thread with no implicit scheduling; coroutines, in other words. This is useful when you want to control exactly when your code runs. You can build custom scheduled micro-threads on top of greenlet; however, it seems that greenlets are useful on their own as a way to make advanced control flow structures. For example, we can recreate generators; the difference with Python's own generators is that our generators can call nested functions and the nested functions can yield values too. Additionally, you don't need a "yield" keyword. See the example in tests/test_generator.py.

Bistro - Flexible distributed scheduler, a high-performance framework supporting multiple paradigms while retaining ease of configuration, management, and monitoring

  •    C++

Bistro is a toolkit for making services that schedule and execute tasks. Bistro is a toolkit for making distributed computation systems. It can schedule and run distributed tasks, including data-parallel jobs. It enforces resource constraints for worker hosts and data-access bottlenecks. It supports remote worker pools, low-latency batch scheduling, dynamic shards, and a variety of other possibilities. It has command-line and web UIs.

task - A task runner / simpler Make alternative written in Go

  •    Go

Task is a simple tool that allows you to easily run development and build tasks. Task is written in Golang, but can be used to develop any language. It aims to be simpler and easier to use then GNU Make.Or you can download the binary from the releases page and add to your PATH. DEB and RPM packages are also available. The task_checksums.txt file contains the SHA-256 checksum for each file.

Celery - Distributed Task Queue

  •    Python

Celery is an asynchronous task queue/job queue based on distributed message passing. It is focused on real-time operation, but supports scheduling as well. The execution units, called tasks, are executed concurrently on a single or more worker servers using multiprocessing, Eventlet, or gevent. Tasks can execute asynchronously (in the background) or synchronously (wait until ready).

cpp-taskflow - Fast C++ Parallel Programming with Task Dependency Graphs

  •    C++

A fast C++ header-only library to help you quickly build parallel programs with complex task dependencies. Cpp-Taskflow lets you quickly build parallel dependency graphs using modern C++17. It supports both static and dynamic tasking, and is by far faster, more expressive, and easier for drop-in integration than existing libraries.

cr - Runs your tasks at maximum concurrency

  •    Go

cr is a job executor concerned with achieving the highest parallel execution possible. Given a definition of jobs and their dependencies, it builds a graph that outlines the execution plan of these jobs.

time-grunt - Display the elapsed execution time of grunt tasks

  •    Javascript

The watch task and tasks that take less than 1% of the total time are hidden to reduce clutter.Run grunt with grunt --verbose to see all tasks.

virtualization-lms-core - A Framework for Runtime Code Generation and Compiled DSLs

  •    Scala

Lightweight Modular Staging (LMS) is a runtime code generation approach. This framework, LMS-Core, provides a library of core components for building high performance code generators and embedded compilers in Scala. Closely related projects are Delite, a framework for heterogeneous parallel domain specific languages (DSLs), and Scala-Virtualized, a set of minimal extensions to the Scala compiler to make embedding DSLs more seamless.

Android-Download-Manager-Pro - Android/Java download manager library help you to download files in parallel mechanism in some chunks

  •    Java

Android/Java download manager library help you to download files in parallel mechanism in some chunks. This library is a download manager android/java library which developers can use in their apps and allow you to download files in parallel mechanism in some chunks and notify developers about tasks status (any download file process is a task). Each download task cross 6 stats in its lifetime.

WSS Task Manager Activity

  •    

A custom task creation activity that can be used in a sequential or state machine workflow. The activity was specifically developed to handle task creation, update, delete, email and completion within the Replicator activity to create tasks in parallel.

Robo - Modern task runner for PHP

  •    PHP

Now you can use it just like robo. All tasks are defined as public methods in RoboFile.php. It can be created by running robo. All protected methods in traits that start with task prefix are tasks and can be configured and executed in your tasks.

VasSonic - VasSonic is a lightweight and high-performance Hybrid framework developed by tencent VAS team, which is intended to speed up the first screen of websites working on Android and iOS platform

  •    Java

VasSonic is a lightweight and high-performance Hybrid framework developed by tencent VAS team, which is intended to speed up the first screen of websites working on Android and iOS platform. Not only does VasSonic supports the static or dynamic websites which are rendered by server, but it is also compatible with web offline resource perfectly. VasSonic uses custom url connection instead of original network connection to request the index html, so it can request resource in advance or parallel to avoid waiting for the view initialization. In this parallel case, VasSonic can read and render partial data by WebKit or Blink kernel without spending too much time waiting for the end of data stream.

libdispatch - Linux port of Apple's open-source concurrency library

  •    C

pthreads getting you down? libdispatch, aka Grand Central Dispatch (GCD) is Apple's high-performance event-handling library, introduced in OS X Snow Leopard. It provides asynchronous task queues, monitoring of file descriptor read and write-ability, asynchronous I/O (for sockets and regular files), readers-writer locks, parallel for-loops, sane signal handling, periodic timers, semaphores and more. You'll want to read over Apple's API reference. I've added the ability to integrate libdispatch's main queue with third-party run-loops, e.g. GLib's GMainLoop. Call dispatch_get_main_queue_handle_np() to get a file descriptor your run-loop can monitor for reading; when it becomes readable call dispatch_main_queue_drain_np() to execute the pending tasks.