Asynchronous & Fault-tolerant PHP Framework for Distributed Applications.

Overview

Kraken PHP Framework ~ Release the Kraken!

Build Status Latest Stable Version Latest Unstable Version License Gitter @kraken_php on Twitter

Note: This repository contains the core of the Kraken Framework. If you want to start developing new application with Kraken, check out Kraken Application Skeleton. If you want to learn more visit official website.


Description

Kraken is the first and only multi-processed, multi-threaded, fault-tolerant framework for PHP. It has been written to provide easy and reliable API for creating distributed applications using PHP. Kraken aims to solve typical problems of writing such applications and to provide developers with powerful yet elegant tools for dealing with them.

The main focus of Kraken Framework is put on:

  • Concurrency : create systems that are asynchronous and concurrent by design,
  • Distribution : divide your application into several containers and run them on multiple threads, processors or hosts,
  • Fault tolerance : write systems that self-heal using remote and local supervision hierarchies,
  • Elasticity : modify existing architecture in realtime without need to change in code,
  • High performance : handle up to thousands of connections per second on each container,
  • Extensibility : use available options to easily extend and adapt framework features for your needs.

Start writing applications that were previously marked as impossible or hard to implement in PHP right know. Servers, service-oriented architecture, agent-based models, games, complex daemons, socket programs, schedulers and much, much more - nothing is impossible with Kraken!

Feature Highlights

Kraken features:

  • Support for asynchronous programming using fully-featured event Loop with multiple backgrounds.
  • Support for event-driven architecture.
  • Easy to understand and work with Promise-based API.
  • Consistent multi-processing and multi-threading.
  • Process and Thread abstraction as isolated message-driven containers.
  • Built-in message routing system and IPC abstraction.
  • Configurable local and remote supervision hierarchies.
  • Centralized deployment and management.
  • Extensible Console and Server interface.
  • Asynchronous TCP and UDP sockets.
  • Asynchronous Stream wrappers.
  • Standalone HTTP and WebSocket server.
  • Variety of IPC models.
  • ReactPHP-compatibility adapters.
  • ...and more.

Full list of features can be found on official website.

Performance

Kraken is able to emit millions of events and thousands of messages and connections per second using single container. It is scalable for multiple processes and threads, faster than traditional PHP approach and able to handle similar amount of connections as Node.js.

Note: Keep in mind that Kraken project does not solely focus around HTTP performance. It provides a set of distinct asynchronous libraries to use in PHP. The attached graph's main intention is to show that PHP is fast enough to compete with the leading technologies available on the market. The HTTP component has been chosen as it is the only one that can be easily compared between asynchronous and synchronous MVC frameworks. Do not treat it as an actual benchmark.

Powered By

Kraken Framework is built on top of asynchronous library named Dazzle Project. If you are looking for a solution simpler than framework, you might consider using it instead.


Requirements

  • PHP-5.6 or PHP-7.0+,
  • UNIX or Windows OS,
  • Additional constraints based on which components you do plan to use.

Installation and Official Documentation

Documentation for the framework can be found in the official documentation page. To see installation instructions, please check out application skeleton or go to installation guide.

Examples

There are few examples you can try, before deciding to use Kraken:

If you have written your own demo application for Kraken, and want to list it here, contact us!

Frequently Asked Questions

How does the Kraken differ from other PHP async libraries?

In comparison to already existing PHP async libraries, Kraken gives the developer not only the async tools, but also do the most of the dirty work of creating distributed applications. It gives you consistent interface for working with processes and threads, implements fault-tolerance mechanisms, allows usage of remote and local supervision hierarchies, gives IPC abstractions and implements most important messaging patterns such as routing, heartbeating and much, much more. Instead of thinking how to use async libraries in the new project and how to design the project with them, developer can simply start Kraken instance and focus on its business logic!

Is PHP GC able to handle daemonized, long-running application?

In most cases yes, but developers still have to keep an eye on application memory usage. PHP 5.5+, which is required for using framework, is able to successfully deal with proper memory handling and garbage collecting. It proves to be true regarding Kraken modules as in development cycle special attention was paid to ensure they do not leak memory. This, however, cannot be guaranteed with usage of third party vendors as some (ex. ORMs) are known to be prone to this problem. The easiest way to avoid it is to simply use destructors, unset functions and create memory allocation and deallocation tests. If despite that you still stumble across this problem, the best way to deal with it is to isolate leaking piece of code in separated container and restart it cyclically when it reaches its memory limits.


If there are any additional questions that you have about framework, please check whether the answers for them have been already posted in issues or ask on our gitter room.

Contributing

Thank you for considering contributing to Kraken Framework! The contribution guide can be found in the contribution tips.

License

Kraken Framework is open-sourced software licensed under the MIT license. The documentation is provided under FDL-1.3 license.

Comments
  • PHP Warning:  Uncaught  Throwable trace:

    PHP Warning: Uncaught Throwable trace:

    Composer version 1.2.1 2016-09-12 11:27:19

    PHP 7.0.8-0ubuntu0.16.04.3 (cli) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.8-0ubuntu0.16.04.3, Copyright (c) 1999-2016, by Zend Technologies

    composer create-project --prefer-dist kraken-php/kraken .
    Installing kraken-php/kraken (v0.3.1)
      - Installing kraken-php/kraken (v0.3.1)
        Loading from cache
    
    Created project in .
    > php ./data/script/script.install
    string(4) "hej?"
    Loading composer repositories with package information
    Updating dependencies (including require-dev)
    ............
    ............
    ............
    Package guzzle/common is abandoned, you should avoid using it. Use guzzle/guzzle instead.
    Package guzzle/stream is abandoned, you should avoid using it. Use guzzle/guzzle instead.
    Package guzzle/parser is abandoned, you should avoid using it. Use guzzle/guzzle instead.
    Package guzzle/http is abandoned, you should avoid using it. Use guzzle/guzzle instead.
    Writing lock file
    Generating autoload files
    
    >composer create-project --prefer-dist kraken-php/kraken .
    >chmod 777 -R data/log/ data/storage/
    >php kraken.server 
    Server is booting...
    PHP Warning:  Uncaught  Throwable trace:
             0. [WarningError] "require(): data:/ wrapper is disabled in the server configuration by allow_url_include=0" in /ConfigFactory.php:48
            Stack trace:
             0. [throwable] Kraken\Throwable\Error\WarningError(...) in ErrorHandler:63
             1. [call] Kraken\Throwable\ErrorHandler::handleError(2, ""require(): data:// wrapper is d...", "/home/absiddique/Projects/php/kk...", 48, Array) in ConfigFactory:48
             2. [call] Undefinedrequire() in ConfigFactory:48
             3. [call] Kraken\Config\ConfigFactory->Kraken\Config\{closure}() in unknown:0
             4. [call] Undefinedcall_user_func_array(Closure, Array) in SimpleFactoryTrait:128
             5. [call] Kraken\Util\Factory\SimpleFactory->create() in ConfigProvider:180
             6. [call] Kraken\Root\Provider\ConfigProvider->createConfig("/home/absiddique/Projects/php/kk...") in ConfigProvider:239
             7. [call] Kraken\Root\Provider\ConfigProvider->configure(Kraken\Config\Config) in ConfigProvider:103
             8. [call] Kraken\Root\Provider\ConfigProvider->register(Kraken\Root\Console\Server in /home/absiddique/Projects/php/kk/vendor/kraken-php/throwable/ErrorHandler.php on line 63
    PHP Fatal error:  Kraken\Config\ConfigFactory::Kraken\Config\{closure}(): Failed opening required 'data://text/plain;base64,PD9waHAKCi8qKgogKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogRGVmYXVsdCBjb25maWd1cmF0aW9uIGZvciBDb25zb2xlIFNlcnZlci4KICoKICogRm9yIG1vcmUgaW5mb3JtYXRpb24gdmlzaXQ6IGh0dHA6Ly9rcmFrZW4tcGhwLmNvbS9kb2NzCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKi8KcmV0dXJuIFsKICAgIC8qKgogICAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAqIEFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBmaWxlIHRvIGxvYWQuCiAgICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICogVGhpcyB2YXJpYWJsZS in /home/absiddique/Projects/php/kk/vendor/kraken-php/config/ConfigFactory.php on line 48
            Throwable trace:
             0. [FatalError] "Kraken\Config\ConfigFactory::Kraken\Config\{closure}(): Failed opening required 'data:/plain;base64,PD9waHAKCi8qKgogKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogRGVmYXVsdCBjb25maWd1cmF0aW9uIGZvciBDb25zb2xlIFNlcnZlci4KICoKICogRm9yIG1vcmUgaW5mb3JtYXRpb24gdmlzaXQ6IGh0dHA6Ly9rcmFrZW4tcGhwLmNvbS9kb2NzCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKi8KcmV0dXJuIFsKICAgIC8qKgogICAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAqIEFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBmaWxlIHRvIGxvYWQuCiAgICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICogVGhpcyB2YXJpYWJsZS" in /ConfigFactory.php:48
            Stack trace:
             0. [throwable] Kraken\Throwable\Error\FatalError(...) in ErrorHandler:64
             1. [call] Kraken\Throwable\ErrorHandler::handleError(64, ""Kraken\Config\ConfigFactory::Kr...", "/home/absiddique/Projects/php/kk...", 48) in ErrorHandler:80
             2. [call] Kraken\Throwable\ErrorHandler::handleShutdown(1) in EnvironmentProvider:45
             3. [call] Kraken\Root\Provider\EnvironmentProvider->Kraken\Root\Provider\{closure}() in unknown:0
             4. [main]
    Killed
    
    opened by absiddiqueLive 9
  • Benchmark source code?

    Benchmark source code?

    I'm curious about performance. I'm also developing framework that can work as HTTP server and as WebSockets server, but typical https://github.com/kenjis/php-framework-benchmark doesn't support such configurations. It also seems that you compare to other frameworks that are not running under something like ReactPHP (which some of them are capable of).

    Would you like to share your setup and benchmark source code? Didn't found it in this repo, in other repos of organization and on the website.

    question 
    opened by nazar-pc 8
  • php kraken server:ping returns a remote ip address when it works

    php kraken server:ping returns a remote ip address when it works

    Hi. I'm running into this issue after fresh install. php kraken.server works fine but when I execute php kraken server:ping most of time it times out but when it works it returns a remote ip address. I'm using Kraken 0.3.2 on php 7.0.11

    opened by neutronstein 5
  • Error starting server with kraken.server

    Error starting server with kraken.server

    hi, i have a ready project kraken with composer "composer create-project --prefer-dist kraken-php/kraken" but when starting server "kraken.server" i get error "kraken.server: command not found"

    how to fix it?

    question 
    opened by riky-cloud 5
  • Add Aerys and ReactPHP to benchmarks

    Add Aerys and ReactPHP to benchmarks

    The official website benchmarks many frameworks except the PHP ones that have a similar event-loop architecture. IMMO, It would be way more informative if Aerys and ReactPHP were featured too just for the sake of having a more oranges to oranges comparison.

    PS: Just to be clear. I've tried kraken. It does what it promises and it's cool and I'm not implying the benchmarks are skewed in any way :)

    opened by marcioAlmada 3
  • Kraken project:create throws an exception

    Kraken project:create throws an exception

    I executed the following:

    as a root:

    > composer create-project --prefer-dist kraken-php/kraken .
    > php kraken.server
    > php kraken server:ping 
    > php kraken project:create
    

    the last command throws this:

    Executing : project:create ... failure!
    Response  : "fwrite(): send of 159 bytes failed with errno=32 Broken pipe" in /home/vagrant/github/epp-client/vendor/kraken-php/util/Isolate/Isolate.php:73
    Reason    : Kraken\Throwable\Error\NoticeError
    

    PHP 5.6.17 (cli) (built: Jan 9 2016 10:31:18) Copyright (c) 1997-2015 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies

    Note that the following command works fine:

    > php ./data/autorun/kraken.process undefined Main Main
    

    Your help is appreciated. Thanks.

    duplicate 
    opened by abshammeri 3
  • composer guzzle\* packages is abandoned

    composer guzzle\* packages is abandoned

    When I finished command "composer install", composer print those advices

    Package guzzle/common is abandoned, you should avoid using it. Use guzzle/guzzle                                                                                      instead.
    Package guzzle/stream is abandoned, you should avoid using it. Use guzzle/guzzle                                                                                      instead.
    Package guzzle/parser is abandoned, you should avoid using it. Use guzzle/guzzle                                                                                      instead.
    Package guzzle/http is abandoned, you should avoid using it. Use guzzle/guzzle i                                                                                     nstead.
    

    Should we take the default advice?

    opened by hidehalo 2
  • Async stream readers should not start reading automatically

    Async stream readers should not start reading automatically

    Right now all asynchronous streams start reading automatically. It is useful in network-based streams, but undesirable behaviour for file-based ones. Also, it contradicts with asynchronous write bahviour, which starts looping only after the first write and may create perforance issues on larger number of streams.

    enhancement 
    opened by khelle 1
  • Where is the Performance Benchmark Code?

    Where is the Performance Benchmark Code?

    Hey, my questions is obivious. I'm curious what kind of stuff and which conditions you tested in. There is only image that shows how good kraken in but how? In what conditions, I think its important too.

    duplicate 
    opened by sarpaykent 1
  • Add sendCommand method to runtime managers

    Add sendCommand method to runtime managers

    Currently runtime managers allow sending asynchronous messages and requests using their interface. It would be useful to allow invoking remote commands the same way.

    enhancement 
    opened by khelle 1
  • Failed container doesn't care what instructions it gets and from

    Failed container doesn't care what instructions it gets and from

    When container fails and escalates the problem to its parent supervision system, it doesn't care what instructions it get and from. It makes it accept instructions that might not be connected to solving the issue. What's more it allows executing the commands that should not be allowed in failed state.

    major bug 
    opened by khelle 1
  • Dead project ?

    Dead project ?

    Hey man, i can't see any commit since 2017, you have abandonned project ? You have a verry good idea in your hand and i think you can create a better PHP world. 😮 I am very interresting by this framework and if you need help tell me. 😃

    opened by GothShoot 1
  • Incompatibility with libraries which uses modern version of ReactPHP

    Incompatibility with libraries which uses modern version of ReactPHP

    As example: mgp25/Instagram-API

    It requires react/event-loop 0.4.3 and react/socket 0.8 that leads to conflict with react/socket 0.4 which uses kraken-php/network through cboden/ratchet 0.3.

    i find out that cboden/ratchet 0.4 support react/socket 0.8. Can you update it please?

    opened by EligiusSantori 0
  • Error starting kraken.server

    Error starting kraken.server

    Hello, I get these errors running : php kraken.server I've enabled the allow_url_include in php.ini and i also gave permissions to /data folder.

    These are the errors:

        Throwable trace:
         0. [WarningError] "date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone." in LogProvider.php:124
         1. [ExecutionException] "ServiceProvider [Kraken\Root\Provider\LogProvider] raised an error." in ServiceProvider:157
         2. [ExecutionException] "ServiceProvider Kraken\Root\Provider\LogProvider failed during registration." in ServiceRegister:352
         3. [ExecutionException] "ServiceRegister could not be booted." in ServiceRegister:92
         4. [InstantiationException] "Core module could not be booted." in Core:79
        Stack trace:
         0. [throwable] Kraken\Throwable\Error\WarningError(...) in ErrorHandler:63
         1. [call] Kraken\Throwable\ErrorHandler::handleError(2, "date(): It is not safe to rely o...", "/home/make/compy/vendor/kraken...", 124, Array) in unknown:0
         2. [call] Undefineddate("Y-m-d") in LogProvider:124
         3. [call] Kraken\Root\Provider\LogProvider->filePath("/home/make/compy/data/log/%lev...", "emergency") in LogProvider:102
         4. [call] Kraken\Root\Provider\LogProvider->createHandler(Kraken\Config\Config, "emergency", 600) in LogProvider:50
         5. [throwable] Kraken\Throwable\Exception\Runtime\ExecutionException(...) in ServiceProvider:157
         6. [call] Kraken\Container\ServiceProvider->throwException(Kraken\Throwable\Error\WarningError) in ServiceProvider:84
         7. [call] Kraken\Container\ServiceProvider->registerProvider(Kraken\Root\Runtime\Core\ProcessCore) in ServiceRegister:342
         8. [throwable] Kraken\Throwable\Exception\Runtime\ExecutionException(...) in ServiceRegister:352
         9. [call] Kraken\Container\ServiceRegister->registerProviders() in ServiceRegister:80
        10. [throwable] Kraken\Throwable\Exception\Runtime\ExecutionException(...) in ServiceRegister:92
        11. [call] Kraken\Container\ServiceRegister->boot() in Core:331
        12. [call] Kraken\Core\Core->bootProviders() in Core:70
        13. [throwable] Kraken\Throwable\Exception\Logic\InstantiationException(...) in Core:79
        14. [call] Kraken\Core\Core->boot() in ProcessBoot:189
        15. [call] Kraken\Root\Runtime\Boot\ProcessBoot->boot("/home/make/compy/data") in kraken.process:37
        16. [main]
    

    Killed

    Where is the problem?

    Another issue, running a .php file using the Kraken script, i get this error but i think is because kraken.server didn't start: PHP Fatal error: Cannot instantiate interface Kraken\Loop\LoopInterface

    Thanks

    opened by evilmake 3
  • The console problems and fixes

    The console problems and fixes

    At the moment the console server is bugged. Sometimes it stops working and needs restart to fix the most common problems, but sometimes the message routing fails or it does not clean after itself.

    Right now, the best solution for this problem is not to use console, but stick to alternative start method, which in default configuration is:

    $> php ./data/autorun/kraken.process undefined Main Main
    

    This is the logic that works underneath project:create command and it is equal in use. If there are any subprocesses or subthreads in Main, they will also be fired. The only con of this approach is, that you will not be able to use console command, therefore when shuting down the project you will need to kill all processes manually.

    This is very urgent problem, and should be prioritized to be done for the release of v0.4

    major bug important 
    opened by khelle 2
  • Make current Filesystem a Cloud-based one and add new async one

    Make current Filesystem a Cloud-based one and add new async one

    At first Filesystem was added only for the need of reading and writing configuration files. Then, the additional abstracitons were added, because they were easy to implement on top of league's filesystem. There is set of drawbacks of using this apporach and would be beneficial to reimplement it. The proposal is:

    • Move current Filesystem (Kraken\Filesystem) to Cloud (Kraken\Cloud) namespace.
    • Implement async Filesystem in empty (Kraken\Filesystem).
    feature important 
    opened by khelle 0
Releases(v0.4.1)
Owner
Kraken
Distributed & Async PHP Framework
Kraken
Asynchronous server-side framework for network applications implemented in PHP using libevent

phpDaemon https://github.com/kakserpom/phpdaemon Asynchronous framework in PHP. It has a huge number of features. Designed for highload. Each worker i

Vasily Zorin 1.5k Nov 30, 2022
Motan - a cross-language remote procedure call(RPC) framework for rapid development of high performance distributed services

Motan-PHP Overview Motan is a cross-language remote procedure call(RPC) framework for rapid development of high performance distributed services.

Weibo R&D Open Source Projects 81 Nov 19, 2022
An asynchronous event driven PHP socket framework. Supports HTTP, Websocket, SSL and other custom protocols. PHP>=5.3.

Workerman What is it Workerman is an asynchronous event-driven PHP framework with high performance to build fast and scalable network applications. Wo

walkor 10.2k Dec 31, 2022
Asynchronous tasks based on ticks.

TickAsync Asynchronous tasks based on ticks. If you like this project gift us a ⭐ . Installation. $ composer require thenlabs/task-loop 2.0.x-dev then

ThenLabs 1 Jan 3, 2022
Hprose asynchronous client & standalone server based on swoole

Hprose for Swoole Introduction Hprose is a High Performance Remote Object Service Engine. It is a modern, lightweight, cross-language, cross-platform,

Hprose 186 Sep 9, 2022
Framework X – the simple and fast micro framework for building reactive web applications that run anywhere.

Framework X Framework X – the simple and fast micro framework for building reactive web applications that run anywhere. Quickstart Documentation Tests

Christian Lück 620 Jan 7, 2023
Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs.

Slim Framework Slim is a PHP micro-framework that helps you quickly write simple yet powerful web applications and APIs. Installation It's recommended

Slim Framework 11.5k Jan 4, 2023
A powerful yet easy-to-use PHP micro-framework designed to help you build dynamic and robust Web applications - fast!

A powerful yet easy-to-use PHP micro-framework designed to help you build dynamic and robust Web applications - fast! Condensed in a single ~65KB file

Bong Cosca 2.6k Dec 30, 2022
Mind is the PHP code framework designed for developers. It offers a variety of solutions for creating design patterns, applications and code frameworks.

Mind Mind is the PHP code framework designed for developers. It offers a variety of solutions for creating design patterns, applications and code fram

null 0 Dec 13, 2021
Woski is a fast and simple lightweight PHP Framework for building applications in the realm of the web.

Woski is a simple fast PHP framework for the Realm The Project Installation Clone the repository $ composer create-project clintonnzedimma/woski myApp

Clinton Nzedimma 19 Aug 15, 2022
Biny is a tiny, high-performance PHP framework for web applications

Biny is high performance. Framework comes default with response time of less than 1ms. Stand-alone QPS easily up to 3000.

Tencent 1.7k Dec 9, 2022
Framework for building extensible server-side progressive applications for modern PHP.

Chevere ?? Subscribe to the newsletter to don't miss any update regarding Chevere. Framework for building extensible server-side progressive applicati

Chevere 65 Jan 6, 2023
TrailLamp is a lightweight, easy-to-use Php MVC framework that can be used to build web applications and REST APIs.

TrailLamp Introduction TrailLamp is a lightweight, easy-to-use Php MVC framework that can be used to build web applications and REST APIs. Installatio

Etorojah Okon 14 Jun 10, 2022
FlyCubePHP is an MVC Web Framework developed in PHP and repeating the ideology and principles of building WEB applications, embedded in Ruby on Rails.

FlyCubePHP FlyCubePHP is an MVC Web Framework developed in PHP and repeating the ideology and principles of building WEB applications, embedded in Rub

Anton 1 Dec 21, 2021
A Small modular PHP framework Build for web applications

MagmaCore__ This project is in active development. So is evolving constantly. As soon project gets to stable point. Due notice will be given Composer

Ricardo Miller 10 Sep 2, 2022
Elgg is an open source rapid development framework for socially aware web applications.

Elgg Elgg is an open source rapid development framework for socially aware web applications. Features Well-documented core API that allows developers

Elgg 1.6k Dec 27, 2022
LODSPeaKr is a framework for creating Linked Data applications in a simple and easy way

LODSPeaKr is a framework for creating Linked Data applications in a simple and easy way. You can see several applications created using LODSPeaKr.

Alvaro Graves 31 Jun 23, 2020
This extension provides a view renderer for Pug templates for Yii framework 2.0 applications.

This extension provides a view renderer for Pug templates for Yii framework 2.0 applications.

Revin Roman 9 Jun 17, 2022
PPM is a process manager, supercharger and load balancer for modern PHP applications.

PPM - PHP Process Manager PHP-PM is a process manager, supercharger and load balancer for PHP applications. It's based on ReactPHP and works best with

PPM - PHP Process Manager 6.5k Dec 27, 2022