Decription
About
Radical is a RPC library that allows you to have cross-service communication out of the box.
It can serve as a replacement for Celery.
Radical has out-of-the-box integration with Django and also supports asyncio, but can be used without it.
Radical is easily extensible with custom transports and serializers.
Available transports:
Redis
Postgres
Default and recommended transport is Redis.
Available serializers:
JSON
Pickle
Default and recommended serializer is Pickle.
Glossary
Term |
Meaning |
|---|---|
Service |
A fully autonomous application written with Django, Sanic or vanilla Python. |
Transport |
Module that provides interface to actual network communication: for example, a Redis transport. |
Serializer |
Module that provides interface to data serialization and deserialization. |
Quick start
Installing
pip install radical-rpc
Using with Django
Add Radical to INSTALLED_APPS:
INSTALLED_APPS = [ # ... 'radical', # ... ]Configure Radical:
RADICAL_CONFIG = { 'TRANSPORT_URL': 'redis://redis:6379/0?request_timeout=10', 'QUEUE_NAME': 'myapp', 'MODULES': [ 'radical.demo' ] }Call it anywhere:
from radical.contrib.django import call_wait, call from django.http import JsonResponse def some_view(request): # Call remote method and wait for it to return result. result = call_wait('myapp', 'radical.demo.add', 1300, 37) return JsonResponse(dict(result=result)) # Returns {'result': 1337} def some_view(request): # Call remote method and do not wait for it to finish. call('myapp', 'radical.demo.add', 1300, 37) return JsonResponse(dict(result='Job was scheduled.'))Start Radical worker:
./manage.py radical
Metadata
Release files for radical-rpc 0.1.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| radical-rpc-0.1.7.tar.gz | 11.8 kB | Details |
Release files / radical-rpc-0.1.7.tar.gz
| Download URL | radical-rpc-0.1.7.tar.gz |
|---|---|
| Size | 11.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b77e2c3c98d487f8a6cebb03fbb360f94aada3b73457a48951416c628dc67364
|
|
BLAKE2b-256 checksum How to use checksums |
2c890412865593dd0a6e8b7125c25720800077ff3d2a7519b80d9677c35b9a79
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Python-urllib/3.6
|