Download the PHP package distantmagic/resonance without Composer
On this page you can find all versions of the php package distantmagic/resonance. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download distantmagic/resonance
More information about distantmagic/resonance
Files in distantmagic/resonance
Package resonance
Short Description PHP Framework with AI capabilities.
License MIT
Informations about the package resonance
Resonance
About Resonance
Resonance is designed from the ground up to facilitate interoperability and messaging between services in your infrastructure and beyond. It provides AI capabilities, has a built in web server and integrates with llama.cpp.
Takes full advantage of asynchronous PHP. Built on top of Swoole.
Why Resonance?
Predictable Performance
Resonance is designed with a few priorities: no memory leaks, blocking operations, and garbage collector surprises.
Most of the internals are read-only and stateless. After the application startup, nothing disturbs JIT and opcode (Reflection is only used during the application startup), so there are no surprise slowdowns during runtime.
Opinionated
All the libraries under the hood have been thoroughly tested to ensure they work together correctly, complement each other, and work perfectly under async environments.
For example, Resonance implements custom Doctrine drivers, so it uses Swoole's connection pools.
Resolves Input/Output Issues
Resonance is designed to handle IO-intensive tasks, such as serving Machine Learning models, handling WebSocket connections, and processing long-running HTTP requests.
It views modern applications as a mix of services that communicate with each other asynchronously, including AI completions and ML inferences, so it provides a set of tools to make this communication as easy as possible.
Complete Package
Resonance includes everything you need to build a modern web application, from the HTTP server to the AI capabilities.
It provides security features, HTML templating, integration with open-source LLMs, and provides capability to serve ML models.
Documentation
https://resonance.distantmagic.com/
Installation
It's best to install Resonance by using Composer's create-project command:
Resonance requires minimum 8.2 version of PHP, as well as Data Structures and Swoole extensions. Read more about required and recommended extensions, as well as other installation methods in our installation guide.
First-time use
You'll need to create a config.ini
file after installing the project (config.ini.example
is provided) and then use bin/resonance.php
as an entry point.
Running the server
php bin/resonance.php
serve starts the built-in HTTP server. If you need to, you can generate the SSL Certificate for Local Development.
Features
Chat with Open-Source LLMs
Create prompt controllers to directly answer user's prompts.
LLM takes care of determining user's intention, you can focus on taking an appropriate action.
Asynchronous Where it Matters
Respond asynchronously to incoming RPC or WebSocket messages (or both combined) with little overhead.
You can set up all the asynchronous features using attributes. No elaborate configuration is needed.
Simple Things Remain Simple
Writing HTTP controllers is similar to how it's done in the synchronous code.
Controllers have new exciting features that take advantage of the asynchronous environment.
Consistency is Key
You can keep the same approach to writing software no matter the size of your project.
There are no growing central configuration files or service dependencies registries. Every relation between code modules is local to those modules.
Promises in PHP
Resonance provides a partial implementation of Promise/A+ spec to handle various asynchronous tasks.
GraphQL Out of the Box
You can build elaborate GraphQL schemas by using just the PHP attributes.
Resonance takes care of reusing SQL queries and optimizing the resources' usage.
All fields can be resolved asynchronously.
Tutorials
- 'Hello, World' with Resonance
- Session-Based Authentication
- Building a Basic GraphQL Schema
- How to Serve LLM Completions (With llama.cpp)?
- How to Create LLM WebSocket Chat with llama.cpp?
- Semi-Scripted Conversational Applications
Community
You can find official channels here:
License
The Resonance framework is open-sourced software licensed under the MIT license.
All versions of resonance with dependencies
distantmagic/graphql-swoole-promise-adapter Version ^0.1.1
distantmagic/swoole-futures Version ^0.1.2
doctrine/dbal Version ^4.0
doctrine/migrations Version ^3.6
doctrine/orm Version ^3.0
doctrine/sql-formatter Version ^1.2
dragonmantank/cron-expression Version ^3.3
ezyang/htmlpurifier Version ^4.16
grpc/grpc Version ^1.57
hyperf/coroutine Version ^3.1
hyperf/grpc-client Version ^3.1
league/commonmark Version ^2.4
league/oauth2-client Version ^2.7
league/oauth2-server Version ^8.5
nette/php-generator Version ^4.1
nicmart/tree Version ^0.8.0
nyholm/psr7 Version ^1.8
nyholm/psr7-server Version ^1.1
php Version >=8.2
psr/container Version ^2.0
psr/http-message Version ^2.0
psr/http-server-handler Version ^1.0
psr/log Version ^3.0
ramsey/uuid Version ^4.7
symfony/console Version ^7.0
symfony/doctrine-bridge Version ^7.0
symfony/event-dispatcher Version ^7.0
symfony/expression-language Version ^7.0
symfony/filesystem Version ^7.0
symfony/finder Version ^7.0
symfony/http-client Version ^7.0
symfony/http-foundation Version ^7.0
symfony/mailer Version ^7.0
symfony/messenger Version ^7.0
symfony/routing Version ^7.0
symfony/uid Version ^7.0
symfony/yaml Version ^7.0
twig/cache-extra Version ^3.7
twig/twig Version ^3.7
webonyx/graphql-php Version ^15.6
beberlei/assert Version ^3.3
dunglas/doctrine-json-odm Version ^1.4
rubix/ml Version ^2.5