concurrent - Promises/A+ with Scala Awesomeness

  •        5

Concurrent supports the bare bones Promise implementation that supports then(onFulfilled, onRejected), fulfill(value), reject(reason). Concurrent also provides a Future class which inherits from Promise. It has a lot of syntactic sugar on top of the Promises/A+ spec based on the Scala Future API.

http://pspeter3.com/blog/2013/08/27/concurrent-performant-promises-aplus-with-scala-awesomeness/
https://github.com/pspeter3/concurrent

Tags
Implementation
License
Platform

   




Related Projects

Zio - A type-safe, composable library for async and concurrent programming in Scala

  •    Scala

ZIO is a zero-dependency Scala library for asynchronous and concurrent programming. It is powered by highly-scalable, non-blocking fibers that never waste or leak resources, ZIO lets you build scalable, resilient, and reactive applications that meet the needs of your business.

lwt - OCaml promises and concurrent I/O.

  •    OCaml

Lwt is OCaml's concurrent programming library. It provides a single data type: the promise, which is a value that will become determined in the future. Creating a promise spawns a computation. When that computation is I/O, Lwt runs it in parallel with your OCaml code. OCaml code, including creating and waiting on promises, is run in a single thread by default, so you don't have to worry about locking or preemption. You can detach code to be run in separate threads on an opt-in basis.

posterus - Composable async primitives (futures) with cancelation, control over scheduling, and coroutines

  •    Javascript

Posterus is a library of promise-like asynchronous primitives (futures) that support cancelation. Futures compose just like promises, but can also be cleanly shut down, aborting pending operations and freeing resources. Posterus also exposes its inner scheduling capabilities, allowing you to "opt out" of asynchrony when needed (motivating example).


concurrent-ruby - Modern concurrency tools including agents, futures, promises, thread pools, supervisors, and more

  •    Ruby

Modern concurrency tools for Ruby. Inspired by Erlang, Clojure, Scala, Haskell, F#, C#, Java, and classic concurrency patterns. This gem depends on contributions and we appreciate your help. Would you like to contribute? Great! Have a look at issues with looking-for-contributor label. And if you pick something up let us know on the issue.

chai-as-promised - Extends Chai with assertions about promises.

  •    Javascript

Chai as Promised extends Chai with a fluent language for asserting facts about promises. Notice: either return or notify(done) must be used with promise assertions. This can be a slight departure from the existing format of assertions being used on a project or by a team. Those other assertions are likely synchronous and thus do not require special handling.

node-promise-mysql

  •    Javascript

Promise-mysql is a wrapper for mysqljs/mysql that wraps function calls with Bluebird promises. Usually this would be done with Bluebird's .promisifyAll() method, but mysqljs/mysql's footprint is different to that of what Bluebird expects. At the minute only the standard connection (using .createConnection()) and the pool (using .createPool()) is supported. createPoolCluster is not implemented yet.

httpinvoke - A no-dependencies HTTP client library for browsers and Node

  •    Javascript

A no-dependencies HTTP client library for browsers and Node.js with a promise-based or Node.js-style callback-based API to progress events, text and binary file upload and download, partial response body, request and response headers, status code. Any one, two or three arguments can be skipped, except the url.

concurrencpp - Modern concurrency for C++

  •    C++

concurrencpp is a tasking library for C++ allowing developers to write highly concurrent applications easily and safely by using tasks, executors and coroutines. By using concurrencpp applications can break down big procedures that need to be processed asynchronously into smaller tasks that run concurrently and work in a co-operative manner to achieve the wanted result. concurrencpp also allows applications to write parallel algorithms easily by using parallel coroutines. concurrencpp is a task-centric library. A task is an asynchronous operation. Tasks offer a higher level of abstraction for concurrent code than traditional thread-centric approaches. Tasks can be chained together, meaning that tasks pass their asynchronous result from one to another, where the result of one task is used as if it were a parameter or an intermediate value of another ongoing task. Tasks allow applications to utilize available hardware resources better and scale much more than using raw threads, since tasks can be suspended, waiting for another task to produce a result, without blocking underlying OS-threads. Tasks bring much more productivity to developers by allowing them to focus more on business-logic and less on low-level concepts like thread management and inter-thread synchronization.

Grails - A Powerful Groovy-Based Web application framework for the JVM built on top of Spring Boot

  •    Groovy

Grails is a web framework, for the JVM, built on top of Spring Boot. It leverages many features such as Spring-Powered dependency injection. It seamlessly and transparently integrates and interoperates with Java, the JVM, and existing Java EE containers.

Hydra - Lightweight full-featured Promises, Async & Await Library in Swift

  •    Swift

A more detailed look at how Hydra works can be found in ARCHITECTURE file or on Medium.

deferred - Modular and fast Promises implementation for JavaScript

  •    Javascript

Deferred is complete, one of the fastest and natural promise implementation in JavaScript, with Deferred you can write clear maintainable code that takes maximum out of asynchronicity, in fact due to multi-dimensional nature of promises (chaining and nesting) you're forced to program declaratively. With Deferred you also can: Process collections of deferred calls. Handle Node.js asynchronous functions. Limit concurrency of scheduled tasks. Emit progress events or stream results partially on the go.

Broadway - Concurrent and multi-stage data ingestion and data processing with Elixir

  •    Elixir

Build concurrent and multi-stage data ingestion and data processing pipelines with Elixir. It allows developers to consume data efficiently from different sources, known as producers, such as Amazon SQS, Apache Kafka, Google Cloud PubSub, RabbitMQ, and others. Broadway takes the burden of defining concurrent GenStage topologies and provide a simple configuration API that automatically defines concurrent producers, concurrent processing, batch handling, and more, leading to both time and cost efficient ingestion and processing of data.

eldritch - A ruby DSL that adds concurrent programming constructs to make parallelism easier.

  •    Ruby

The dark arts of concurrent programming. A DSL that adds parallel programming constructs to make your life a little easier.

concurrent-map - a thread-safe concurrent map for go

  •    Go

As explained here and here, the map type in Go doesn't support concurrent reads and writes. concurrent-map provides a high-performance solution to this by sharding the map with minimal time spent waiting for locks. The package is now imported under the "cmap" namespace.

promises-tests - Compliances tests for Promises/A+

  •    Javascript

This suite tests compliance of a promise implementation with the Promises/A+ specification. Passing the tests in this repo means that you have a Promises/A+ compliant implementation of the then() method, and you can display the Promises/A+ logo in your README. You can also send a pull request to have your implementation listed on the implementations page.






We have large collection of open source products. Follow the tags from Tag Cloud >>


Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.