Skip to main content

Polyglot RPC over Redis — call functions across languages

Project description

AnyCall Library

Redis-based library for RPC in Python. Provides a framework for communication between applications through Redis Streams.

Overview

AnyCall is a framework that allows Python applications to communicate asynchronously through Redis, using Redis Streams as the message transport mechanism.

Main Components

Core

  • AnyCall - Main library interface
  • AnyCallClient - Client for calling methods on remote suppliers
  • AnyCallServer - Server for registering and executing methods
  • RedisStreamAdapter - Redis Streams adapter

Configuration

  • AnycallProperties - Configuration properties for the library
  • supply - Decorator to mark methods as supply

Models

  • AnyCallRequest - RPC request model
  • AnyCallResponse - RPC response model

Build

uv sync

This will install the library and its dependencies in the workspace.

Basic Usage

  1. Implement a supplier using the @supply decorator
  2. Configure and start the AnyCallServer
  3. Use AnyCallClient to call methods remotely

See example-supplier and example-consumer for practical examples.

Dependencies

  • Redis
  • Python 3.9+

Configuration

Configure properties through AnycallProperties:

from datetime import timedelta
from anycall import AnyCall

props = AnycallProperties(
    timeout=timedelta(seconds=30),
    metrics_enabled=True
)

Or use the defaults:

from anycall import AnyCall

client = AnyCall.client("redis://localhost:6379")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

anycall_py-0.1.0.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

anycall_py-0.1.0-py3-none-any.whl (1.8 kB view details)

Uploaded Python 3

File details

Details for the file anycall_py-0.1.0.tar.gz.

File metadata

  • Download URL: anycall_py-0.1.0.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.22

File hashes

Hashes for anycall_py-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e4bba27a0485496afd12dc3f124cad50f735a30bfd8fcce8e18ab2d1ad3a2917
MD5 79765d6416af01043dfb41588793d32f
BLAKE2b-256 f584c0efb1eaf573dd56844f8760551edb641bff1abf526adf5643413e226681

See more details on using hashes here.

File details

Details for the file anycall_py-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: anycall_py-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 1.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.22

File hashes

Hashes for anycall_py-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 417446f4814db3a0514acd23c26971fe564f4591a28cfb204c564cd2d5cf1403
MD5 d53ac943dd6a1d8bd2a59a6878bf9fb2
BLAKE2b-256 8920846f879768c07fff8425bfcf75c1dbae6a95f72b81e924719f541d33b5f4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page