coroutine
Workerman
coroutine | Workerman | |
---|---|---|
4 | 6 | |
375 | 10,947 | |
0.3% | - | |
9.6 | 8.3 | |
12 days ago | 18 days ago | |
Go | PHP | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
coroutine
-
Durable Coroutines for Go
This seems really brittle.
https://github.com/stealthrocket/coroutine/blob/main/getg_am...
-
Coroutines for Golang
Coroutines are make up for the difficulties of using go routines.
Coroutines can explicitly yield control to their callers and other coroutines and send and receive data across yield points.
https://github.com/stealthrocket/coroutine has the code and a basic sample.
- Coroutine: A library for serializing Go funcs for resumption in other processes
Workerman
-
Scaling to ~15K requests per second with Java – Part 1
I remember a consulting gig where they were pushing 50k requests per second with PHP in a 2018 laptop by using this framework https://github.com/walkor/workerman
In a real application, with database connection pooling and auth sessions, it went down to 15k requests/s.
And that was PHP7. PHP8 introduced JIT so it's probably significantly faster these days and hopefully fully typed.
-
Build Warehouse and Store Management System - Pt. 4 - Final
The code above is an example of creating a websocket server from the usage example on the workerman/workerman page on github.
- Integrating a websocket interfase into a REST API?
-
Exotic/unknown frameworks?
Workerman
- Running PHP code in parallel, the easy way
-
Asynchronous PHP — Multiprocessing, Multithreading & Coroutines - Diving Laravel
That's cute. I managed to get 100k requests per second on a single i7 CPU this week using standard blocking code with Workerman. Zero added cognitive load. It also does DB pooling, workers, sockets and consumes relatively lower memory than other solutions.
What are some alternatives?
parallel-sdk - A library to manage and run tasks in parallel using krakjoe/parallel PHP extension
Ratchet - Asynchronous WebSocket server
Symfony2 Components - The Symfony documentation
React - Event-driven, non-blocking I/O with PHP.
parallel - A succinct parallel concurrency API for PHP8
RoadRunner - 🤯 High-performance PHP application server, process manager written in Go and powered with plugins
go-micro - A Go microservices framework
LaravelS - LaravelS is an out-of-the-box adapter between Laravel/Lumen and Swoole.
async-php-8-io-http - True asynchronous PHP I/O and HTTP without frameworks, extensions, or annoying code. Uses PHP Fibers introduced in PHP 8.1
Elephant.io - Ça trompe énormément
juicefs - JuiceFS is a distributed POSIX file system built on top of Redis and S3.
Amp - A non-blocking concurrency framework for PHP applications. 🐘