📦 miraveja-protos
Protobuf definitions and generated bindings for the Miraveja ecosystem
Etymology: Protocol buffers (protos) used throughout the Miraveja microservices and SDKs
🚀 Overview
miraveja-protos centralizes the project's Protocol Buffer definitions and the generated language bindings used by services and SDKs across the Miraveja ecosystem. It contains the canonical .proto sources (organized by domain/version) and generated Python artifacts used by consumers in this repository.
This repo is intentionally minimal: keep .proto files authoritative, and keep generated code under src/miraveja_protos/generated so consumers can import pre-built bindings when needed.
✨ Key Features
- 📂 Canonical
.protosources organized by domain and version - 🔁 Reproducible code generation workflow (scripts and Docker-friendly tooling)
- 🧩 Python bindings included (ready-to-import generated modules)
- 🔒 Linting and validation support with
protolint(config inprotolint.yaml) - ⚙️ CI-friendly: generation steps are small and automatable
🛠️ Technology Stack
Core
- Protocol Buffers (
.proto) — canonical schema format protoc— protocol buffer compiler- Python 3.10+ — generated Python bindings live in
src/miraveja_protos/generated
Development / Tooling
protolint— proto linter (configured withprotolint.yaml)docker/docker-compose— optional reproducible generation environmentpre-commit,black,isort,pylint,mypy— code quality and checks (used across Miraveja projects)
📁 Repository Layout
Top-level layout (relevant parts):
.
├── protos/
│ ├── common/
│ │ └── v0/greeter.proto
│ └── model/
│ └── v1/
│ ├── image_caption.proto
│ ├── image_embeddings.proto
│ ├── image_generation.proto
│ ├── image_safety.proto
│ ├── image_tagging.proto
│ ├── image_title.proto
│ ├── post_text.proto
│ └── text_embeddings.proto
├── scripts/
│ └── generate_python.sh # helper to generate python bindings
├── src/
│ └── miraveja_protos/
│ └── generated/ # generated Python bindings (checked-in)
├── protolint.yaml
├── Dockerfile
├── docker-compose.yml
└── README.md
🎯 Getting Started
Prerequisites
protoc(for local generation) or Docker (recommended for reproducible builds)- Python 3.10+ to run tests or import generated bindings
Generate Python bindings
Prefer using the provided script which wraps protoc invocation and keeps generation consistent.
Unix / WSL / macOS (recommended):
./scripts/generate_python.sh
Windows PowerShell (if protoc is installed):
# run protoc manually (example)
protoc -I=protos \
--python_out=src/miraveja_protos/generated \
--grpc_python_out=src/miraveja_protos/generated \
protos/model/v1/*.proto
If you prefer Docker for reproducibility, use the Dockerfile or docker-compose so the host doesn't need protoc installed.
Lint .proto files
Use protolint to validate proto style and conventions:
# install protolint (or use docker image)
protolint lint -config protolint.yaml protos/**/*.proto
📦 Generated code
Generated Python modules are placed under src/miraveja_protos/generated.
Keep generated code in sync with .proto sources — prefer small, focused commits for schema changes and generated updates.
🧪 Testing & CI
This repository's CI should validate the following (examples used across Miraveja projects):
- Run
protolintonprotos/ - Ensure generated bindings import cleanly (run a small smoke test)
🤝 Contributing
Contributions are welcome. If you add or change any .proto files:
- Update the affected
.protounderprotos/. - Run the generation script and confirm generated bindings are updated.
- Run
protolintand fix any linter issues. - Open a PR with schema and generated changes in the same branch.
Development checklist (recommended):
# run lint for protos
protolint lint -config protolint.yaml protos/**/*.proto
# regenerate bindings
./scripts/generate_python.sh
# run a quick python import smoke test
python -c "import miraveja_protos.generated; print('ok')"
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
👨💻 Author / Contact
- Author: Jomar Júnior de Souza Pereira
- Email: jomarjunior@poli.ufrj.br
- Repository: https://github.com/JomarJunior/miraveja-protos
🔗 Related Projects
- 📝 miraveja-log — Logging library that provides a clean, configurable interface for application logging.
- 💉 miraveja-di — Dependency injection container that leverages Python's type hints for automatic dependency resolution.
- 🔐 miraveja-authentication — Authentication library that implements OAuth2/OpenID Connect standards with JWT token validation and role-based authorization.
- 🧠 ModelMora — Microservice for managing and serving neural network models with efficient memory management and multi-protocol support.
- 🖼️ Miraveja — AI-powered image gallery designed for exploration, inspiration, and creative workflows.
Made with ❤️ for the Miraveja ecosystem
Metadata
Release files for miraveja-protos 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| miraveja_protos-0.1.2.tar.gz | 12.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| miraveja_protos-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 40.5 kB
Release files / miraveja_protos-0.1.2.tar.gz
| Download URL | miraveja_protos-0.1.2.tar.gz |
|---|---|
| Size | 12.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2662dec78c89bdd93982f5cb66d6b2ad067e7fde78025169a8c5f3808a08d3ee
|
|
BLAKE2b-256 checksum How to use checksums |
daa52861d56f1a996bba3089a93c09e7559248690ee0fcf1f3d6979a03d05462
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 22, 2025.
Transparency logRelease files / miraveja_protos-0.1.2-py3-none-any.whl
| Download URL | miraveja_protos-0.1.2-py3-none-any.whl |
|---|---|
| Size | 28.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cc573c610dc171db7a6e661350a4ee23e0a733a999184c11b965a1f1d72493e3
|
|
BLAKE2b-256 checksum How to use checksums |
89e206624238a46371db58db36a3446f7c5e439e43558e4eabc37aa5555da216
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 22, 2025.
Transparency log