A versioned, centralized protobuf specification package for all MiraVeja microservices, distributed as a PyPI package.
Project description
๐ฆ 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file miraveja_protos-0.1.1.tar.gz.
File metadata
- Download URL: miraveja_protos-0.1.1.tar.gz
- Upload date:
- Size: 3.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c038cdc67b5f90613c2335a8cd93c98a8d4063e6da8044cb1e325ef41f23681b
|
|
| MD5 |
ffd7b07fb24fc7e4952e18c50fce0228
|
|
| BLAKE2b-256 |
f17ef07671c0b29946e3ae67a916b1ba48764c2e5f60407b4e363d71b4f29746
|
Provenance
The following attestation bundles were made for miraveja_protos-0.1.1.tar.gz:
Publisher:
publish.yml on JomarJunior/miraveja-protos
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
miraveja_protos-0.1.1.tar.gz -
Subject digest:
c038cdc67b5f90613c2335a8cd93c98a8d4063e6da8044cb1e325ef41f23681b - Sigstore transparency entry: 715881303
- Sigstore integration time:
-
Permalink:
JomarJunior/miraveja-protos@c85121d9afefbbe0903434b708a10c8171b53336 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/JomarJunior
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c85121d9afefbbe0903434b708a10c8171b53336 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file miraveja_protos-0.1.1-py3-none-any.whl.
File metadata
- Download URL: miraveja_protos-0.1.1-py3-none-any.whl
- Upload date:
- Size: 4.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf95536bc5751c6d2e837c8b46fb1538abd0ff9c1eee74363614b84875d4f996
|
|
| MD5 |
97d7480ec03e6ab01b2f58c74fb9e300
|
|
| BLAKE2b-256 |
3cf635d339044dc07ea673427b7ac31b9ef55a626af829e94d1c23bc86b0f5e0
|
Provenance
The following attestation bundles were made for miraveja_protos-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on JomarJunior/miraveja-protos
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
miraveja_protos-0.1.1-py3-none-any.whl -
Subject digest:
bf95536bc5751c6d2e837c8b46fb1538abd0ff9c1eee74363614b84875d4f996 - Sigstore transparency entry: 715881304
- Sigstore integration time:
-
Permalink:
JomarJunior/miraveja-protos@c85121d9afefbbe0903434b708a10c8171b53336 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/JomarJunior
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c85121d9afefbbe0903434b708a10c8171b53336 -
Trigger Event:
workflow_dispatch
-
Statement type: