Skip to main content
Jararaca Logo

Jararaca Microservice Framework

Overview

Jararaca is an async-first microservice framework designed to simplify the development of distributed systems. It provides a comprehensive set of tools for building robust, scalable, and maintainable microservices with a focus on developer experience and type safety.

Key Features

REST API Development

  • Easy-to-use interfaces for building REST APIs
  • Automatic request/response validation
  • Type-safe endpoints with FastAPI integration
  • Automatic OpenAPI documentation generation

Message Bus Integration

  • Topic-based message bus for event-driven architecture
  • Support for both worker and publisher patterns
  • Built-in message serialization and deserialization
  • Easy integration with AIO Pika for RabbitMQ

Distributed WebSocket

  • Room-based WebSocket communication
  • Distributed broadcasting across multiple backend instances
  • Automatic message synchronization between instances
  • Built-in connection management and room handling

Task Scheduling

  • Cron-based task scheduling
  • Support for overlapping and non-overlapping tasks
  • Distributed task execution
  • Easy integration with message bus for task distribution

TypeScript Integration

  • Automatic TypeScript interface generation
  • Command-line tool for generating TypeScript types
  • Support for REST endpoints, WebSocket events, and message bus payloads
  • Type-safe frontend-backend communication
  • @ExposeType decorator - Explicitly expose types for TypeScript generation without needing them in endpoints

Hexagonal Architecture

  • Clear separation of concerns
  • Business logic isolation from infrastructure
  • Easy testing and maintainability
  • Dependency injection for flexible component management

Observability

  • Built-in OpenTelemetry integration
  • Distributed tracing support
  • Logging and metrics collection
  • Performance monitoring capabilities

Quick Start

Installation

pip install jararaca

Basic Usage

from jararaca import Microservice, create_http_server
from jararaca.presentation.http_microservice import HttpMicroservice

# Define your microservice
app = Microservice(
    providers=[
        # Add your providers here
    ],
    controllers=[
        # Add your controllers here
    ],
    interceptors=[
        # Add your interceptors here
    ],
)

# Create HTTP server
http_app = HttpMicroservice(app)
web_app = create_http_server(app)

Running the Service

# Run as HTTP server
jararaca server app:http_app

# Run as message bus worker
jararaca worker app:app

# Run as scheduler
jararaca scheduler app:app

# Generate TypeScript interfaces
jararaca gen-tsi app.main:app app.ts

Documentation

For detailed documentation, please visit our documentation site.

Examples

Check out the examples directory for complete working examples of:

  • REST API implementation
  • WebSocket usage
  • Message bus integration
  • Task scheduling
  • TypeScript interface generation

Contributing

Contributions are welcome! Please read our contributing guidelines for details on our code of conduct and the process for submitting pull requests.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Release files for jararaca 0.5.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jararaca 0.5.3
File Size Uploaded
jararaca-0.5.3.tar.gz 469.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jararaca 0.5.3
File Interpreter ABI Platform
jararaca-0.5.3-py3-none-any.whl Python 3 none any Details

Total release size: 650.1 kB

Release files / jararaca-0.5.3.tar.gz

Download URL jararaca-0.5.3.tar.gz
Size 469.5 kB
Tags Source
SHA-256 checksum
How to use checksums
0938b59c3e2b3423614fd8345c4e0de557ddf39ca2a339d60bb5db2e219a7679
BLAKE2b-256 checksum
How to use checksums
a6c1aca6e85faf13c4797d07b04796c5898b8c3d63fcc9099616eb7255c7c8c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.0 CPython/3.14.4 Linux/6.18.44-1-lts

Release files / jararaca-0.5.3-py3-none-any.whl

Download URL jararaca-0.5.3-py3-none-any.whl
Size 180.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6b48211d8acb28a4e0a2bed8566a538350fe003cdce0d6a9dbdd1bc7791c43cb
BLAKE2b-256 checksum
How to use checksums
714d2fd6500ae33b8fdc557e0b21e5dbebb741e27e1eae310b120dab2ea30e96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.0 CPython/3.14.4 Linux/6.18.44-1-lts

Release history Release notifications | RSS feed

0.5.13

2 release files

0.5.11

2 release files

0.5.10

2 release files

0.5.9

2 release files

0.5.7

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.4

2 release files

This release

0.5.3 This release

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.13

2 release files

0.4.12

2 release files

0.4.11

2 release files

0.4.10

2 release files

0.4.9

2 release files

0.4.8

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.44

2 release files

0.3.43

2 release files

0.3.38

2 release files

0.3.37

2 release files

0.3.36

2 release files

0.3.35

2 release files

0.3.34

2 release files

0.3.33

2 release files

0.3.22

2 release files

0.3.21

2 release files

0.3.20

2 release files

0.3.19

2 release files

0.3.18

2 release files

0.3.17

2 release files

0.3.15

2 release files

0.3.13

2 release files

0.3.12

2 release files

0.3.11

2 release files

0.3.10

2 release files

0.3.9

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.36

2 release files

0.2.34

2 release files

0.2.33

2 release files

0.2.32

2 release files

0.2.31

2 release files

0.2.30

2 release files

0.2.29

2 release files

0.2.28

2 release files

0.2.27

2 release files

0.2.26

2 release files

0.2.25

2 release files

0.2.24

2 release files

0.2.23

2 release files

0.2.22

2 release files

0.2.21

2 release files

0.2.20

2 release files

0.2.19

2 release files

0.2.18

2 release files

0.2.17

2 release files

0.2.16

2 release files

0.2.15

2 release files

0.2.14

2 release files

0.2.13

2 release files

0.2.12

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.63

2 release files

0.1.62

2 release files

0.1.59

2 release files

0.1.58

2 release files

0.1.57

2 release files

0.1.56

2 release files

0.1.55

2 release files

0.1.54

2 release files

0.1.50

2 release files

0.1.49

2 release files

0.1.48

2 release files

0.1.47

2 release files

0.1.46

2 release files

0.1.45

2 release files

0.1.44

2 release files

0.1.43

2 release files

0.1.42

2 release files

0.1.41

2 release files

0.1.40

2 release files

0.1.39

2 release files

0.1.38

2 release files

0.1.37

2 release files

0.1.36

2 release files

0.1.35

2 release files

0.1.34

1 release file

0.1.33

2 release files

0.1.32

2 release files

0.1.31

2 release files

0.1.30

2 release files

0.1.29

2 release files

0.1.28

2 release files

0.1.27

2 release files

0.1.26

2 release files

0.1.25

2 release files

0.1.24

2 release files

0.1.23

2 release files

0.1.22

2 release files

0.1.21

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.17

2 release files

0.1.16

2 release files

0.1.15

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page