Skip to content

Instantly share code, notes, and snippets.

Christian Lück clue

Block or report user

Report or block clue

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@clue
clue / 2018-11-28 introducing-reactphp-mysql-lazy-connections.md
Last active Aug 23, 2019
Introducing lazy MySQL connections with ReactPHP
View 2018-11-28 introducing-reactphp-mysql-lazy-connections.md

Today, we're very happy to announce the immediate availability of the next major beta release of friends-of-reactphp/mysql, the async MySQL database client for ReactPHP. 🎉

Now that v0.5.0 has been tagged and released today, let's look into why we believe the new API provides significant new features that warrant a major version bump. While existing code will continue to work without changes, you're highly recommended to consider using the new lazy connections as detailed below. Alright, let's be lazy!

Eager database connections

friends-of-reactphp/mysql provides a pure PHP implementation for accessing an existing MySQL database with ReactPHP. It allows you to asynchronously connect to your database and send queries to it. Depending on your use case, you can use multiple concurrent connections or use @ReactPHP's vast ecosystem to concurrency access other servic

@clue
clue / 2018-11-20 introducing-reactphp-socks.md
Last active Aug 23, 2019
Introducing SOCKS proxy connector for ReactPHP
View 2018-11-20 introducing-reactphp-socks.md

Today, I'm happy to announce the v1.0.0 release of clue/reactphp-socks 🎉

Async SOCKS proxy connector client and server implementation, tunnel any TCP/IP-based protocol through a SOCKS5 or SOCKS4(a) proxy server, built on top of ReactPHP.

Don't be fooled by the version number: Its release history suggests this is not exactly a new project. In fact, this is the first project that got me started with @ReactPHP around six years ago (time flies by) and has been used in production in a number of projects ever since. So I guess it's about time to write an introductory blog post about this project, what SOCKS proxy servers can be used for and why I think @ReactPHP's design makes it a perfect fit.

Pull your SOCKS up

The SOCKS proxy protocol family (SOCKS5, SOCKS4 and SOCKS4a) is commonly used to tunnel HTTP(S) traffic through an intermediary ("proxy"), to conceal the origin address (anonym

@clue
clue / 2018-11-07 introducing-reactphp-soap.md
Last active Sep 11, 2019
Introducing async SOAP requests with ReactPHP
View 2018-11-07 introducing-reactphp-soap.md

Today, I'm happy to announce the v1.0.0 release of clue/reactphp-soap 🎉

Simple, async SOAP web service client library, built on top of ReactPHP.

To answer the first thing you may be wondering: Yes, it is 2018 and indeed, this project has been used in production in a number of projects for a few of years already. So I guess it's about time to write an introductory blog post about this project, how SOAP requests can be used and why I think @ReactPHP's design makes it a perfect fit. Warning, terrible puns ahead.

SOAP shouldn't make you feel dirty

Most notably, SOAP is often used for invoking Remote procedure calls (RPCs) in distributed systems. Internally, SOAP messages are encoded as XML and usually sent via HTTP POST requests. Each SOAP web service may offer any number of RPC functions. These are usually defined in a public [WSDL](https://en

@clue
clue / 2018-10-30 introducing-reactphp-http-proxy.md
Last active Aug 23, 2019
Introducing HTTP CONNECT proxy connector for ReactPHP
View 2018-10-30 introducing-reactphp-http-proxy.md

Today, I'm happy to announce the v1.4.0 release of clue/reactphp-http-proxy 🎉

Async HTTP proxy connector, use any TCP/IP-based protocol through an HTTP CONNECT proxy server, built on top of ReactPHP.

Once again, the version number and its release history suggests this is not exactly a new project. In fact, this has been used in production in a number of projects for a couple of years already. So I guess it's about time to write an introductory blog post about this project, what HTTP CONNECT proxy servers can be used for and why I think @ReactPHP's design makes it a perfect fit.

HTTP CONNECT

HTTP CONNECT proxy servers (also commonly known as "HTTPS proxy" or "SSL proxy") are commonly used to tunnel HTTPS traffic through an intermediary ("proxy"), to conceal the origin address (anonymity) or to circumvent address blocking (geoblocking). While many (public) HTTP CONNECT proxy

@clue
clue / 2018-10-24 introducing-reactphp-buzz.md
Last active Aug 23, 2019
Introducing async HTTP requests with ReactPHP
View 2018-10-24 introducing-reactphp-buzz.md

Today, I'm happy to announce the v2.5.0 release of clue/reactphp-buzz 🎉

Simple, async PSR-7 HTTP client for concurrently processing any number of HTTP requests, built on top of ReactPHP.

As the version number suggests, this is not exactly a new project. In fact, this has been used in production in a larger number of projects for a few years already. So I guess it's about time to write an introductory blog post about this project, why async HTTP requests are such a powerful feature and also a bit about the motivation for this project and why I think @ReactPHP is a perfect fit for sending HTTP requests.

HTTP all the things!

I'm probably not telling you something new when I say the web is built on top of HTTP. This blog post is served over HTTP. Your YouTube videos are served over HTTP. Your downloads are served over HTTP. RESTful backend APIs are served over HTTP. GraphQL APIs are served over HTTP. SOAP APIs are served over HTTP. Yes,

@clue
clue / 2018-09-21 introducing-reactphp-mysql.md
Last active Aug 23, 2019
Introducing MySQL streaming with ReactPHP
View 2018-09-21 introducing-reactphp-mysql.md

Today, we're very happy to announce the immediate availability of the next major beta release of friends-of-reactphp/mysql, the async MySQL database client for ReactPHP. 🎉

Now that v0.4.0 has been tagged and released today, let's look into why I think this is not only a major milestone for this project, but could also possibly be a game changer in how people use databases with ReactPHP and eventually maybe with PHP in general.

This post aims more for the "why" instead of "what" has changed. If you're upgrading from a previous version of this project, you may want to take a look at the changelog describing all the changes in greater detail. Alright, so let's dive right in.

Promise all the things!

Originally, this project was maintained by Jin Hu who did an excellent job figuring out all the protocol details and building an API that can be cons

@clue
clue / 2018-08-14 introducing-reactphp-csv.md
Last active Aug 23, 2019
Introducing streaming CSV with ReactPHP
View 2018-08-14 introducing-reactphp-csv.md

I'm happy to announce the very first stable release of clue/reactphp-csv 🎉

Streaming CSV (Comma-Separated Values or Character-Separated Values) parser and encoder for ReactPHP.

Now that v1.0.0 has been tagged and released today, let's look into what CSV is, how it compares to other formats such as NDJSON and how CSV can be used in PHP and @ReactPHP.

CSV format

CSV (Comma-Separated Values or less commonly Character-Separated Values) is a very simple text-based format for storing a large number of (uniform) records, such as a list of user records or log entries.

@clue
clue / 2018-07-12 non-blocking-io-for-the-masses-webengdus.md
Last active Jul 13, 2018
Non-blocking I/O for the masses (WebEngDUS)
View 2018-07-12 non-blocking-io-for-the-masses-webengdus.md

I/O is everywhere. I/O is slow. There's no denying it. Using traditional blocking I/O calls can thus be seen as a huge contributor to slow applications. This talk discusses how non-blocking I/O can help in building high performance, event-driven, reactive, concurrent, single-threaded applications (bingo). Don't worry, no need to install Node.js and npm install half the internet. Let's build high-performance applications from scratch with whatever language you're most comfortable with!

20 minutes talk at @WebEngDUS (2018-07-12)

Slides

The slides are available on https://speakerdeck.com/clue/non-blocking-io-for-the-masses-webengdus.

These slides were used as part of a presentation at @WebEngDUS. The full presentation took around 20 minutes including live demonstration and a short Q/A followed by some very nice discussions.

@clue
clue / 2018-07-11 announcing-reactphp-lts.md
Last active Jul 11, 2018
Announcing stable ReactPHP LTS release
View 2018-07-11 announcing-reactphp-lts.md
You can’t perform that action at this time.