Skip to content
Harminder Virk edited this page Nov 26, 2016 · 106 revisions

co libraries

Libraries that support Co via thunk or promise style return values:

  • co-child-process - spawn a child process with stdin support
  • prompt-promise - Sane command prompt, confirm, multiline, password as promises
  • co-prompt - terminal user input utilities
  • co-walk - walk a file tree and return a list of files
  • check-sum - assert multiple checksums on a stream in parallel
  • cogent - simpler HTTP requests using co
  • hash-stream - yield the hash of a stream or file
  • moko - generator powered models
  • octokat.js - a GitHub API client using promises
  • pswd - hash and compare passwords with pbkdf2
  • raw-body - get and validate the raw body of a readable stream
  • unglob - unglob a list of files/globs based on a directory or another list of files
  • fly - New generation build system and task automation tool for node using generators.
  • eventemitter-co - EventEmitter where you can yield stuff (with co support)
  • co-lambda-runner - An interface between generators and AWS Lambda functions

HTTP Servers

Libraries specifically for use with HTTP servers.

  • body - Parse HTTP requests bodies with thunks
  • co-body - parse request bodies
  • co-busboy - parse multipart bodies
  • co-multipart - parse multipart bodies and save to disk
  • co-render - template rendering built on consolidate.js
  • co-views - higher level template rendering based on co-render
  • koa - Expressive middleware for node.js using generators
  • co-next — Simple wrapper to use generators for request handlers and middleware. General purpose. Useful for Express routes.

Flow Control

  • async-co - async flows backed up by generators & co
  • co-assert-timeout - Assert a timeout on a thunk or generator function
  • co-blackhole - Filter and ignore errors.
  • co-control - Kick off async processes but don't pause code execution until you need the result.
  • co-defer – setImmediate and stuff with generators
  • co-each - parallel foreach
  • co-first – Yield the first async value returned for the co generator library
  • co-flow – Flexible execution flow addons (all, any, wait) for co
  • co-gate – Gate module to guard asynchronous API with a callback
  • co-gather - similar with co-parallel, but will gather all the results even error happened
  • co-limiter - Limits how many generators can be ran at the same time
  • co-parallel - parallel execution with concurrency support
  • co-priority-queue - A simple priority queue
  • co-process - Concurrent producer/consumer processing
  • co-queue - A FIFO queue
  • co-read - consume readable streams
  • co-retry - Automatically retry generators that fail
  • co-jitter-retry - Retry generators, with full-jitter
  • co-select – Yield the first async value returned for the co generator library
  • co-sleep – setTimeout that works with the co generator framework
  • co-spawn – setImmediate for the co generator framework
  • co-sqlite3 - A promise version for node-sqlite3
  • co-thread - execute N light-weight threads (generator functions) in parallel
  • co-wait – setTimeout generator style
  • co-write - write to streams, respecting backpressure
  • chan - A go style channel implementation for JavaScript that works nicely with co.
  • chanel - parallel execution with concurrency and "streaming" support
  • comm - Rust-inspired communication primitives for asynchronous message passing.
  • coo – Flow control library based on co
  • defer - setImmediate, setTimeout, etc. with generators
  • co-filter - Parallel filter generator function
  • co-reject - Parallel reject generator function
  • co-ware - Easily create your own middleware layer using generators
  • composedly - Create compositions of middleware and named it
  • congestion - Generator-based congestion control
  • co-functional - Functional helpers (map, filter, reduce, compose, ...)
  • co-compose - Koa and AdonisJs style middleware for your own apps.

API Wrappers

Libraries that more-or-less just wrap other libraries.

Streams

Template

  • co-ejs - Embedded JavaScript Templates for koa

Logging

  • co-slowlog - slowlog for GeneratorFunction or function that return a Promise.

Others