jararaca 0.3.18__py3-none-any.whl → 0.3.20__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of jararaca might be problematic. Click here for more details.
- jararaca/__init__.py +10 -0
- jararaca/core/uow.py +33 -5
- jararaca/messagebus/implicit_headers.py +45 -0
- jararaca/messagebus/interceptors/aiopika_publisher_interceptor.py +6 -1
- jararaca/messagebus/worker.py +6 -1
- jararaca/microservice.py +3 -1
- jararaca/observability/decorators.py +127 -11
- jararaca/observability/hooks.py +20 -0
- jararaca/observability/providers/otel.py +77 -9
- jararaca/presentation/server.py +28 -4
- {jararaca-0.3.18.dist-info → jararaca-0.3.20.dist-info}/METADATA +8 -6
- {jararaca-0.3.18.dist-info → jararaca-0.3.20.dist-info}/RECORD +15 -16
- {jararaca-0.3.18.dist-info → jararaca-0.3.20.dist-info}/WHEEL +1 -1
- README.md +0 -121
- jararaca-0.3.18.dist-info/LICENSE +0 -674
- pyproject.toml +0 -126
- {jararaca-0.3.18.dist-info → jararaca-0.3.20.dist-info}/entry_points.txt +0 -0
- /LICENSE → /jararaca-0.3.20.dist-info/licenses/LICENSE +0 -0
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
README.md,sha256=YmCngjU8llW0l7L3tuXkkfr8qH7V9aBMgfp2jEzeiKg,3517
|
|
3
|
-
pyproject.toml,sha256=qmLCDQEsY1Me9LPJoJM7-ZQM5qJZKE_uzyOazfgOP4I,2832
|
|
4
|
-
jararaca/__init__.py,sha256=IMnvfDoyNWTGVittF_wq2Uxtv_BY_wLN5Om6C3vUsCw,22302
|
|
1
|
+
jararaca/__init__.py,sha256=niZQiN-Whyw2ExcwQbB8uBDPy90pK36pPwa7dYkecuU,22822
|
|
5
2
|
jararaca/__main__.py,sha256=-O3vsB5lHdqNFjUtoELDF81IYFtR-DSiiFMzRaiSsv4,67
|
|
6
3
|
jararaca/broker_backend/__init__.py,sha256=GzEIuHR1xzgCJD4FE3harNjoaYzxHMHoEL0_clUaC-k,3528
|
|
7
4
|
jararaca/broker_backend/mapper.py,sha256=vTsi7sWpNvlga1PWPFg0rCJ5joJ0cdzykkIc2Tuvenc,696
|
|
@@ -10,7 +7,7 @@ jararaca/cli.py,sha256=n3fTOVSNFNICmbZrLCJNGctpbqLWp39xTSkqlIB6Rds,32005
|
|
|
10
7
|
jararaca/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
8
|
jararaca/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
9
|
jararaca/core/providers.py,sha256=wktH84FK7c1s2wNq-fudf1uMfi3CQBR0neU2czJ_L0U,434
|
|
13
|
-
jararaca/core/uow.py,sha256=
|
|
10
|
+
jararaca/core/uow.py,sha256=J6shc1TwM7uyRDspekY2EdA8slVDPitvHKg4Bunb48E,3533
|
|
14
11
|
jararaca/di.py,sha256=h3IsXdYZjJj8PJfnEDn0ZAwdd4EBfh8jU-wWO8ko_t4,76
|
|
15
12
|
jararaca/files/entity.py.mako,sha256=tjQ-1udAMvVqgRokhsrR4uy3P_OVnbk3XZ8X69ixWhE,3098
|
|
16
13
|
jararaca/lifecycle.py,sha256=qKlzLQQioS8QkxNJ_FC_5WbmT77cNbc_S7OcQeOoHkI,1895
|
|
@@ -18,17 +15,19 @@ jararaca/messagebus/__init__.py,sha256=5jAqPqdcEMYBfQyfZDWPnplYdrfMyJLMcacf3qLyU
|
|
|
18
15
|
jararaca/messagebus/bus_message_controller.py,sha256=Xd_qwnX5jUvgBTCarHR36fvtol9lPTsYp2IIGKyQQaE,1487
|
|
19
16
|
jararaca/messagebus/consumers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
20
17
|
jararaca/messagebus/decorators.py,sha256=71ZvZ5slKruAsTaUHzr2f-D8yaUFl9Xxh9chNLaAs9E,6000
|
|
18
|
+
jararaca/messagebus/implicit_headers.py,sha256=maMvSbWwMklVPW0hX6jZ8gAoKsYXB7saYod85jfoSq4,965
|
|
21
19
|
jararaca/messagebus/interceptors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
|
-
jararaca/messagebus/interceptors/aiopika_publisher_interceptor.py,sha256=
|
|
20
|
+
jararaca/messagebus/interceptors/aiopika_publisher_interceptor.py,sha256=vs8kCZYslNwiQTy6wFAzuX_N6Oq9nx35RV0MBWwdM-c,6703
|
|
23
21
|
jararaca/messagebus/interceptors/publisher_interceptor.py,sha256=ojy1bRhqMgrkQljcGGS8cd8-8pUjL8ZHjIUkdmaAnNM,1325
|
|
24
22
|
jararaca/messagebus/message.py,sha256=U6cyd2XknX8mtm0333slz5fanky2PFLWCmokAO56vvU,819
|
|
25
23
|
jararaca/messagebus/publisher.py,sha256=JTkxdKbvxvDWT8nK8PVEyyX061vYYbKQMxRHXrZtcEY,2173
|
|
26
|
-
jararaca/messagebus/worker.py,sha256=
|
|
27
|
-
jararaca/microservice.py,sha256=
|
|
28
|
-
jararaca/observability/decorators.py,sha256=
|
|
24
|
+
jararaca/messagebus/worker.py,sha256=vni08oRRB-Vz_qXOOoxRDnBTuO8a_rZ6Zue0qx3UUes,69202
|
|
25
|
+
jararaca/microservice.py,sha256=DW4RVeqgrx4J-dAg17sbzTn_sLXuvV1UOQFde2fpqds,11471
|
|
26
|
+
jararaca/observability/decorators.py,sha256=vKAPGLyKz092rd1K4k3xtI2FrRafN69EEuRZKEhaLSk,5627
|
|
27
|
+
jararaca/observability/hooks.py,sha256=VRYg-vlNlFxu9FqOgxyS9VIY6zDcCcgOuZ0RhTUtjwY,488
|
|
29
28
|
jararaca/observability/interceptor.py,sha256=U4ZLM0f8j6Q7gMUKKnA85bnvD-Qa0ii79Qa_X8KsXAQ,1498
|
|
30
29
|
jararaca/observability/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
31
|
-
jararaca/observability/providers/otel.py,sha256=
|
|
30
|
+
jararaca/observability/providers/otel.py,sha256=7K1S23ajGhQqb2zx3_RLD-Czsy82ptjxGwCZBUcY8PU,8662
|
|
32
31
|
jararaca/persistence/base.py,sha256=xnGUbsLNz3gO-9iJt-Sn5NY13Yc9-misP8wLwQuGGoM,1024
|
|
33
32
|
jararaca/persistence/exports.py,sha256=Ghx4yoFaB4QVTb9WxrFYgmcSATXMNvrOvT8ybPNKXCA,62
|
|
34
33
|
jararaca/persistence/interceptors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -42,7 +41,7 @@ jararaca/presentation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
|
|
|
42
41
|
jararaca/presentation/decorators.py,sha256=dNcK1xYWhdHVBeWDa8dhqh4z8yQcPkJZTQkfgLXz6RI,11655
|
|
43
42
|
jararaca/presentation/hooks.py,sha256=WBbU5DG3-MAm2Ro2YraQyYG_HENfizYfyShL2ktHi6k,1980
|
|
44
43
|
jararaca/presentation/http_microservice.py,sha256=g771JosV6jTY3hQtG-HkLOo-T0e-r3b3rp1ddt99Qf0,533
|
|
45
|
-
jararaca/presentation/server.py,sha256=
|
|
44
|
+
jararaca/presentation/server.py,sha256=Kz7H_RuB68b5bphjNlS-7cseH_d-xZMa8V-ETFp_jzI,6563
|
|
46
45
|
jararaca/presentation/websocket/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
47
46
|
jararaca/presentation/websocket/base_types.py,sha256=AvUeeZ1TFhSiRMcYqZU1HaQNqSrcgTkC5R0ArP5dGmA,146
|
|
48
47
|
jararaca/presentation/websocket/context.py,sha256=A6K5W3kqo9Hgeh1m6JiI7Cdz5SfbXcaICSVX7u1ARZo,1903
|
|
@@ -74,8 +73,8 @@ jararaca/tools/typescript/interface_parser.py,sha256=yOSuOXKOeG0soGFo0fKiZIabu4Y
|
|
|
74
73
|
jararaca/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
75
74
|
jararaca/utils/rabbitmq_utils.py,sha256=ytdAFUyv-OBkaVnxezuJaJoLrmN7giZgtKeet_IsMBs,10918
|
|
76
75
|
jararaca/utils/retry.py,sha256=DzPX_fXUvTqej6BQ8Mt2dvLo9nNlTBm7Kx2pFZ26P2Q,4668
|
|
77
|
-
jararaca-0.3.
|
|
78
|
-
jararaca-0.3.
|
|
79
|
-
jararaca-0.3.
|
|
80
|
-
jararaca-0.3.
|
|
81
|
-
jararaca-0.3.
|
|
76
|
+
jararaca-0.3.20.dist-info/METADATA,sha256=83EerrQcpCVn3Q54ciw-9SfaYtb3MtM_enmTwdlbuO4,5224
|
|
77
|
+
jararaca-0.3.20.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
78
|
+
jararaca-0.3.20.dist-info/entry_points.txt,sha256=WIh3aIvz8LwUJZIDfs4EeH3VoFyCGEk7cWJurW38q0I,45
|
|
79
|
+
jararaca-0.3.20.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
80
|
+
jararaca-0.3.20.dist-info/RECORD,,
|
README.md
DELETED
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
<img src="https://raw.githubusercontent.com/LuscasLeo/jararaca/main/docs/assets/_f04774c9-7e05-4da4-8b17-8be23f6a1475.jpeg" alt="Jararaca Logo" width="250" float="right">
|
|
2
|
-
|
|
3
|
-
# Jararaca Microservice Framework
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
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.
|
|
8
|
-
|
|
9
|
-
## Key Features
|
|
10
|
-
|
|
11
|
-
### REST API Development
|
|
12
|
-
- Easy-to-use interfaces for building REST APIs
|
|
13
|
-
- Automatic request/response validation
|
|
14
|
-
- Type-safe endpoints with FastAPI integration
|
|
15
|
-
- Automatic OpenAPI documentation generation
|
|
16
|
-
|
|
17
|
-
### Message Bus Integration
|
|
18
|
-
- Topic-based message bus for event-driven architecture
|
|
19
|
-
- Support for both worker and publisher patterns
|
|
20
|
-
- Built-in message serialization and deserialization
|
|
21
|
-
- Easy integration with AIO Pika for RabbitMQ
|
|
22
|
-
|
|
23
|
-
### Distributed WebSocket
|
|
24
|
-
- Room-based WebSocket communication
|
|
25
|
-
- Distributed broadcasting across multiple backend instances
|
|
26
|
-
- Automatic message synchronization between instances
|
|
27
|
-
- Built-in connection management and room handling
|
|
28
|
-
|
|
29
|
-
### Task Scheduling
|
|
30
|
-
- Cron-based task scheduling
|
|
31
|
-
- Support for overlapping and non-overlapping tasks
|
|
32
|
-
- Distributed task execution
|
|
33
|
-
- Easy integration with message bus for task distribution
|
|
34
|
-
|
|
35
|
-
### TypeScript Integration
|
|
36
|
-
- Automatic TypeScript interface generation
|
|
37
|
-
- Command-line tool for generating TypeScript types
|
|
38
|
-
- Support for REST endpoints, WebSocket events, and message bus payloads
|
|
39
|
-
- Type-safe frontend-backend communication
|
|
40
|
-
- **`@ExposeType` decorator** - Explicitly expose types for TypeScript generation without needing them in endpoints
|
|
41
|
-
|
|
42
|
-
### Hexagonal Architecture
|
|
43
|
-
- Clear separation of concerns
|
|
44
|
-
- Business logic isolation from infrastructure
|
|
45
|
-
- Easy testing and maintainability
|
|
46
|
-
- Dependency injection for flexible component management
|
|
47
|
-
|
|
48
|
-
### Observability
|
|
49
|
-
- Built-in OpenTelemetry integration
|
|
50
|
-
- Distributed tracing support
|
|
51
|
-
- Logging and metrics collection
|
|
52
|
-
- Performance monitoring capabilities
|
|
53
|
-
|
|
54
|
-
## Quick Start
|
|
55
|
-
|
|
56
|
-
### Installation
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
pip install jararaca
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### Basic Usage
|
|
63
|
-
|
|
64
|
-
```python
|
|
65
|
-
from jararaca import Microservice, create_http_server
|
|
66
|
-
from jararaca.presentation.http_microservice import HttpMicroservice
|
|
67
|
-
|
|
68
|
-
# Define your microservice
|
|
69
|
-
app = Microservice(
|
|
70
|
-
providers=[
|
|
71
|
-
# Add your providers here
|
|
72
|
-
],
|
|
73
|
-
controllers=[
|
|
74
|
-
# Add your controllers here
|
|
75
|
-
],
|
|
76
|
-
interceptors=[
|
|
77
|
-
# Add your interceptors here
|
|
78
|
-
],
|
|
79
|
-
)
|
|
80
|
-
|
|
81
|
-
# Create HTTP server
|
|
82
|
-
http_app = HttpMicroservice(app)
|
|
83
|
-
web_app = create_http_server(app)
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
### Running the Service
|
|
87
|
-
|
|
88
|
-
```bash
|
|
89
|
-
# Run as HTTP server
|
|
90
|
-
jararaca server app:http_app
|
|
91
|
-
|
|
92
|
-
# Run as message bus worker
|
|
93
|
-
jararaca worker app:app
|
|
94
|
-
|
|
95
|
-
# Run as scheduler
|
|
96
|
-
jararaca scheduler app:app
|
|
97
|
-
|
|
98
|
-
# Generate TypeScript interfaces
|
|
99
|
-
jararaca gen-tsi app.main:app app.ts
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
## Documentation
|
|
103
|
-
|
|
104
|
-
For detailed documentation, please visit our [documentation site](https://luscasleo.github.io/jararaca/).
|
|
105
|
-
|
|
106
|
-
## Examples
|
|
107
|
-
|
|
108
|
-
Check out the [examples directory](examples/) for complete working examples of:
|
|
109
|
-
- REST API implementation
|
|
110
|
-
- WebSocket usage
|
|
111
|
-
- Message bus integration
|
|
112
|
-
- Task scheduling
|
|
113
|
-
- TypeScript interface generation
|
|
114
|
-
|
|
115
|
-
## Contributing
|
|
116
|
-
|
|
117
|
-
Contributions are welcome! Please read our [contributing guidelines](.github/CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests.
|
|
118
|
-
|
|
119
|
-
## License
|
|
120
|
-
|
|
121
|
-
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|