Skip to main content

📦 miraveja-protos

Python Version License Code Style Status CI

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 .proto sources 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 in protolint.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 with protolint.yaml)
  • docker / docker-compose — optional reproducible generation environment
  • pre-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 protolint on protos/
  • Ensure generated bindings import cleanly (run a small smoke test)

🤝 Contributing

Contributions are welcome. If you add or change any .proto files:

  1. Update the affected .proto under protos/.
  2. Run the generation script and confirm generated bindings are updated.
  3. Run protolint and fix any linter issues.
  4. 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

🔗 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)

Source distribution for miraveja-protos 0.1.2
File Size Uploaded
miraveja_protos-0.1.2.tar.gz 12.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for miraveja-protos 0.1.2
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

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