2017 © Pedro Peláez
 

library concurrent

Concurrency component for Icicle.

image

icicleio/concurrent

Concurrency component for Icicle.

  • Monday, February 22, 2016
  • by Trowski
  • Repository
  • 15 Watchers
  • 178 Stars
  • 16,757 Installations
  • PHP
  • 4 Dependents
  • 0 Suggesters
  • 8 Forks
  • 5 Open issues
  • 10 Versions
  • 8 % Grown

The README.md

Concurrency for Icicle

True concurrency using native threading and multiprocessing for parallelizing code, without blocking., (*1)

This library is a component for Icicle that provides native threading, multiprocessing, process synchronization, shared memory, and task workers. Like other Icicle components, this library uses Coroutines built from Awaitables and Generators to make writing asynchronous code more like writing synchronous code., (*2)

Build Status Coverage Status Semantic Version MIT License @icicleio on Twitter, (*3)

This library provides a means of parallelizing code without littering your application with complicated lock checking and inter-process communication., (*4)

To be as flexible as possible, this library comes with a collection of non-blocking concurrency tools that can be used independently as needed, as well as an "opinionated" worker API that allows you to assign units of work to a pool of worker threads or processes., (*5)

Documentation and Support

Requirements
  • PHP 5.5+ for v0.3.x branch (current stable) and v1.x branch (mirrors current stable)
  • PHP 7 for v2.0 (master) branch supporting generator delegation and return expressions
Suggested
  • pthreads extension: Best extension option for concurrency in PHP, but it requires PHP to be compiled with --enable-maintainer-zts to enable thread-safety.
  • pcntl extension: Enables forking concurrency method.
  • sysvmsg extension: Required for sharing memory between forks or processes.
Installation

The recommended way to install is with the Composer package manager. (See the Composer installation guide for information on installing and using Composer.), (*6)

Run the following command to use this package in your project:, (*7)

composer require icicleio/concurrent

You can also manually edit composer.json to add this library as a project requirement., (*8)

// composer.json
{
    "require": {
        "icicleio/concurrent": "^0.3"
    }
}

Development and Contributing

Interested in contributing to Icicle? Please see our contributing guidelines in the Icicle repository., (*9)

Want to hack on the source? A Vagrant box is provided with the repository to give a common development environment for running concurrent threads and processes, and comes with a bunch of handy tools and scripts for testing and experimentation., (*10)

Starting up and logging into the virtual machine is as simple as, (*11)

vagrant up && vagrant ssh

Once inside the VM, you can install PHP extensions with Pickle, switch versions with newphp VERSION, and test for memory leaks with Valgrind., (*12)

The Versions

22/02 2016

dev-master

9999999-dev http://icicle.io

Concurrency component for Icicle.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Aaron Piotrowski

asynchronous async stream

22/02 2016

0.3.x-dev

0.3.9999999.9999999-dev http://icicle.io

Concurrency component for Icicle.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Aaron Piotrowski

asynchronous async stream

22/02 2016

1.x-dev

1.9999999.9999999.9999999-dev http://icicle.io

Concurrency component for Icicle.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Aaron Piotrowski

asynchronous async stream

15/01 2016

v0.3.0

0.3.0.0 http://icicle.io

Concurrency component for Icicle.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Aaron Piotrowski

asynchronous async stream

21/12 2015

v0.2.2

0.2.2.0 http://icicle.io

Concurrency component for Icicle.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Aaron Piotrowski

asynchronous async stream

17/12 2015

v0.2.1

0.2.1.0 http://icicle.io

Concurrency component for Icicle.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Aaron Piotrowski

asynchronous async stream

14/12 2015

v0.2.0

0.2.0.0 http://icicle.io

Concurrency component for Icicle.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Aaron Piotrowski

asynchronous async stream

14/11 2015

v0.1.1

0.1.1.0 http://icicle.io

Concurrency component for Icicle.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Aaron Piotrowski

asynchronous async stream

29/10 2015

v0.1.0

0.1.0.0 http://icicle.io

Concurrency component for Icicle.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Aaron Piotrowski

asynchronous async stream

29/09 2015

v0.1.0-beta1

0.1.0.0-beta1 http://icicle.io

Concurrency component for Icicle.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Aaron Piotrowski

asynchronous async stream