PHPackages                             gjerokrsteski/reactphp-pimf - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [DevOps &amp; Deployment](/categories/devops)
4. /
5. gjerokrsteski/reactphp-pimf

ActiveLibrary[DevOps &amp; Deployment](/categories/devops)

gjerokrsteski/reactphp-pimf
===========================

reactive RESTful API which uses ReactPHP and PIMF PHP micro framework

v0.1.0(9y ago)2626PHP

Since Jan 5Pushed 5y ago5 watchersCompare

[ Source](https://github.com/gjerokrsteski/reactphp-pimf)[ Packagist](https://packagist.org/packages/gjerokrsteski/reactphp-pimf)[ RSS](/packages/gjerokrsteski-reactphp-pimf/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

Welcome to PHP Nuclear Reactor
==============================

[](#welcome-to-php-nuclear-reactor)

This is an reactive RESTful API which uses ReactPHP and PIMF micro framework.

[![Build Status](https://camo.githubusercontent.com/9f1be13e035f72a1355c39242a2a6c00a4ce5897664d5c83da40b6c53b29d649/68747470733a2f2f7472617669732d63692e6f72672f676a65726f6b72737465736b692f72656163747068702d70696d662e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/gjerokrsteski/reactphp-pimf)[![Code Climate](https://camo.githubusercontent.com/fe7290c658c7296f5b9fd7157e6fb218b27d083d315916a34de49e068bb5a316/68747470733a2f2f636f6465636c696d6174652e636f6d2f6769746875622f676a65726f6b72737465736b692f72656163747068702d70696d662f6261646765732f6770612e737667)](https://codeclimate.com/github/gjerokrsteski/reactphp-pimf)

ReactPHP is one of the most promising libraries. It brings the powerful concept of event-driven, non-blocking I/O (Hi NodeJS) to PHP. With this technology in mind we are able to write our own HTTP stack in PHP and have control back over the memory without destroying it at the end of each request.

*ReactPHP* is responsible for establishing the TCP-Socket, transferring the raw HTTP Requests and sending the HTTP Responses back.

*PIMF micro framework* is responsible for managing the HTTP Resources using the HTTP request methods, validation and handling the persistence interactions.

Benchmark Results, over 19500 requests completed per second
-----------------------------------------------------------

[](#benchmark-results-over-19500-requests-completed-per-second)

```
[vagrant@gkrsteski php-reactor]$ loadtest http://10.0.49.227:5501/articles/10 -t 20 -c 20 --rps 1000
[Wed Feb 10 2016 12:24:47 GMT+0100 (CET)] INFO Requests: 0, requests per second: 0, mean latency: 0 ms
[Wed Feb 10 2016 12:24:52 GMT+0100 (CET)] INFO Requests: 4516, requests per second: 903, mean latency: 10 ms
[Wed Feb 10 2016 12:24:57 GMT+0100 (CET)] INFO Requests: 9515, requests per second: 1000, mean latency: 0 ms
[Wed Feb 10 2016 12:25:02 GMT+0100 (CET)] INFO Requests: 14515, requests per second: 1000, mean latency: 10 ms
[Wed Feb 10 2016 12:25:07 GMT+0100 (CET)] INFO
[Wed Feb 10 2016 12:25:07 GMT+0100 (CET)] INFO Target URL:          http://10.0.49.227:5501/articles/10
[Wed Feb 10 2016 12:25:07 GMT+0100 (CET)] INFO Max time (s):        20
[Wed Feb 10 2016 12:25:07 GMT+0100 (CET)] INFO Concurrency level:   20
[Wed Feb 10 2016 12:25:07 GMT+0100 (CET)] INFO Agent:               none
[Wed Feb 10 2016 12:25:07 GMT+0100 (CET)] INFO Requests per second: 1000
[Wed Feb 10 2016 12:25:07 GMT+0100 (CET)] INFO
[Wed Feb 10 2016 12:25:07 GMT+0100 (CET)] INFO Completed requests:  19512
[Wed Feb 10 2016 12:25:07 GMT+0100 (CET)] INFO Total errors:        0
[Wed Feb 10 2016 12:25:07 GMT+0100 (CET)] INFO Total time:          20.000516531000002 s
[Wed Feb 10 2016 12:25:07 GMT+0100 (CET)] INFO Requests per second: 976
[Wed Feb 10 2016 12:25:07 GMT+0100 (CET)] INFO Total time:          20.000516531000002 s
[Wed Feb 10 2016 12:25:07 GMT+0100 (CET)] INFO
[Wed Feb 10 2016 12:25:07 GMT+0100 (CET)] INFO Percentage of the requests served within a certain time
[Wed Feb 10 2016 12:25:07 GMT+0100 (CET)] INFO   50%      2 ms
[Wed Feb 10 2016 12:25:07 GMT+0100 (CET)] INFO   90%      9 ms
[Wed Feb 10 2016 12:25:07 GMT+0100 (CET)] INFO   95%      18 ms
[Wed Feb 10 2016 12:25:07 GMT+0100 (CET)] INFO   99%      30 ms
[Wed Feb 10 2016 12:25:07 GMT+0100 (CET)] INFO  100%      36 ms (longest request)

```

Installation
------------

[](#installation)

1. clone this repository
2. run: `./init-app.sh`

Run using PHP
-------------

[](#run-using-php)

```
php run-server.php

```

Or run with Docker
------------------

[](#or-run-with-docker)

Build a Docker image for your application by running:

```
docker build -t="reactphp-pimf-api" .

```

Finally, run your application as a Docker container by running:

```
docker run -d -p 1337:1337 reactphp-pimf-api

```

Try out the RESTful API
-----------------------

[](#try-out-the-restful-api)

- http://{reactive.hosts}:{reactive.port}/articles/
- use HTTP method OPTIONS to find how to use the API

Expected API behavior for resource: /articles
---------------------------------------------

[](#expected-api-behavior-for-resource-articles)

```
HTTP Verb |  Entire Collection (e.g. /articles)                                          | Specific Item (e.g. /articles/{id})
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
GET       | 400 (Bad Request)                                                            | 200 (OK), single article.
          |                                                                              | 404 (Not Found), if ID not found or 400 (Bad Request) if invalid.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
PUT       | 405 (Method Not Allowed)                                                     | 200 (OK),
          | - unless you want to update/replace every resource in the entire collection. | 404 (Not Found) if ID not found or 400 (Bad Request) if invalid.
          | - 'Location' header with link to API documentation                           |
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
POST      | 201 (Created),                                                               | 405 (Method Not Allowed)
          | - 'Location' header with link to /articles/{id} containing new ID.           | - 'Location' header with link to API documentation
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
DELETE    | 404 (Not Found) or 405 (Method NOt Allowed)                                  | 200 (OK)
          | - unless you want to delete the whole collection—not often desirable.        | 404 (Not Found) if ID not found or 400 (Bad Request) if ID invalid.
          | - 'Location' header with link to API documentation                           |

```

Run tests
---------

[](#run-tests)

Install a Composer to your project's root

```
php composer.phar require "codeception/codeception:*"
// or ...
composer require "codeception/codeception:*"

```

Execute tests

```
php vendor/codeception/codeception/codecept run --colors
// or if want to see steps ...
php vendor/codeception/codeception/codecept run --steps
// or if want to see fancy HTML report page
php vendor/codeception/codeception/codecept run --html

```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3412d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/49bd060da17ed9ba742319679babb4cfadd9205faabb139f91f15f01dcffd7e4?d=identicon)[gjerokrsteski](/maintainers/gjerokrsteski)

---

Top Contributors

[![gjerokrsteski](https://avatars.githubusercontent.com/u/503822?v=4)](https://github.com/gjerokrsteski "gjerokrsteski (23 commits)")

---

Tags

devopsdockermicroserviceoopphpphp7pimf-micro-frameworkreactphp

### Embed Badge

![Health badge](/badges/gjerokrsteski-reactphp-pimf/health.svg)

```
[![Health](https://phpackages.com/badges/gjerokrsteski-reactphp-pimf/health.svg)](https://phpackages.com/packages/gjerokrsteski-reactphp-pimf)
```

###  Alternatives

[deployer/deployer

Deployment Tool

11.0k25.4M206](/packages/deployer-deployer)[appwrite/server-ce

End to end backend server for frontend and mobile apps.

55.3k84.2k](/packages/appwrite-server-ce)[pragmarx/health

Laravel Server &amp; App Health Monitor and Notifier

2.0k1.0M2](/packages/pragmarx-health)[felixfbecker/language-server-protocol

PHP classes for the Language Server Protocol

22476.7M6](/packages/felixfbecker-language-server-protocol)[heroku/heroku-buildpack-php

Toolkit for starting a PHP application locally, with or without foreman, using the same config for PHP and Apache2/Nginx as on Heroku

8161.3M10](/packages/heroku-heroku-buildpack-php)[tiamo/phpas2

PHPAS2 is a php-based implementation of the EDIINT AS2 standard

4674.7k](/packages/tiamo-phpas2)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
