Download the PHP package hivellm/thunder without Composer

On this page you can find all versions of the php package hivellm/thunder. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package thunder

Thunder — PHP SDK

The PHP lane of the Thunder RPC family (hivellm/thunder). Wire bytes are identical to the Rust, TypeScript, Python, C# and Go lanes — every implementation pins its default test run to conformance/vectors/*.yaml (SPEC-005), so one PR changes wire behaviour everywhere or fails CI.

Layout

Usage

Pipelining, and the one thing PHP cannot do

Every other lane demultiplexes with a background reader. PHP has no threads and no event loop, so this client demuxes on read: while waiting for one id it consumes whatever arrives, routing pushes to the handler and dropping unknown ids. Responses are matched by id, never by arrival order — the contract CLT-010 actually specifies.

What genuinely differs is that one PHP thread cannot await two calls at once. For real multiple-in-flight, send and collect are separate steps:

call() is the one-at-a-time convenience over both.

Pooling

N operations over a pooled connection pay one connect and one handshake, not N (CLT-080):

The callback form is not stylistic: the connection returns in a finally, so an early return or an exception cannot leak it.

Two more things PHP forces this lane to do differently

A Value is built through factories, never inferred. PHP has one string type for both text and binary, but Thunder does not: Str encodes as MessagePack str and Bytes as bin, and WIRE-015 forbids smuggling one as the other. A design that guessed the variant from the PHP value could not tell Value::str('AB') from Value::bytes('AB') — so the variant is always named.

A Map is a list of pairs, not a PHP array. Thunder map keys may be any value and order is observable (WIRE-002); a PHP array would restrict keys to int|string and collapse duplicates. Use Value::mapOf([...]) for the common string-keyed case, or MapEntry directly when keys are not strings.

Test / quality gate

The corpus is not a separate target. TST-020 requires it in the default test command — never feature-gated, never skipped — because a conformance run that has to be remembered is one that stops happening.

Release train (PKG-011)

This package versions in lockstep with every other lane: one tag, one version, everywhere. It publishes to Packagist as hivellm/thunder, which resolves from a VCS tag — so, like the Go lane, there is no push step, but the tag must exist.

The shared gate in release.yml runs this lane's checks on the tagged commit before anything ships.

Where this code lives

The source of truth is the php/ directory of the Thunder monorepo, alongside the other five lanes and the conformance corpus they all share.

The corpus is read from ../conformance/vectors/ relative to this package. If this code is ever mirrored to a standalone repository (as the Go lane is), those vectors are absent there and the corpus tests skip — they still run for real upstream, which is where a wire change actually lands. A skipped corpus in a mirror is expected; a skipped corpus in the monorepo is a bug.


All versions of thunder with dependencies

PHP Build Version
Package Version
Requires php Version >=8.2
rybakit/msgpack Version ^0.9
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package hivellm/thunder contains the following files

Loading the files please wait ...