Skip to main content

Nexus Proto

Shared Protocol Buffer definitions for Nexus microservices.

Why "Nexus"?

The name Nexus was chosen to represent the central connection between microservices. In many languages, "nexus" refers to a point of intersection or link, which is exactly what this project provides: an efficient hub for communication between distributed services built in different technologies. The idea is to create a convergence point that makes it easier to integrate systems, ensuring consistent and scalable communication, no matter the language or framework used. Nexus is the solution that connects and unites services in a simple and effective way.

Features

  • Centralized Protocol Definitions: All communication contracts are defined in a shared repository of .proto files.
  • Pre-Generated Python Stubs: Python stubs (*_pb2.py and *_pb2_grpc.py) are automatically generated and included in the package, eliminating the need for consumers to generate them.
  • Multi-Language Support: Easily integrate microservices written in different programming languages (e.g., Python, Node.js, Java, etc.).
  • Scalable Communication: Easily extend the system as new microservices are added to the architecture.
  • gRPC-powered: Leveraging gRPC for high-performance communication with built-in support for multiple programming languages.
  • Industry Standard: Follows best practices from projects like googleapis-common-protos, ensuring consistency and reliability.

Installation

Node.js / npm

npm install @keeps-learn/nexus-proto

📦 npm Package: https://www.npmjs.com/package/@keeps-learn/nexus-proto

Python / pip

pip install keeps-learn-nexus-proto

📦 PyPI Package: https://pypi.org/project/keeps-learn-nexus-proto/

Quick Start - Python

Using Pre-Generated Stubs (Recommended)

# Import stubs directly - no compilation needed!
from nexus_proto.generated.myaccount import users_pb2, users_pb2_grpc
from nexus_proto.generated.konquest import mission_pb2, mission_pb2_grpc
from nexus_proto.generated.billing import billing_pb2, billing_pb2_grpc

# Use message types
user = users_pb2.User(id="123", name="John Doe")

# Use service stubs with gRPC
import grpc
channel = grpc.aio.secure_channel('localhost:50051', grpc.ssl_channel_credentials())
stub = users_pb2_grpc.UserServiceStub(channel)

See USAGE.md for more detailed examples and options.

Publishing

  1. Update version in package.json, setup.py, and pyproject.toml
  2. Commit: git commit -m "Bump version to X.Y.Z"
  3. Tag: git tag vX.Y.Z
  4. Push: git push origin vX.Y.Z

GitHub Actions publishes automatically to both npmjs.com and pypi.org

See PUBLISH.md for detailed publishing instructions.

Metadata

Release files for keeps-learn-nexus-proto 0.29.0

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

Source distribution (sdist)

Source distribution for keeps-learn-nexus-proto 0.29.0
File Size Uploaded
keeps_learn_nexus_proto-0.29.0.tar.gz 44.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for keeps-learn-nexus-proto 0.29.0
File Interpreter ABI Platform
keeps_learn_nexus_proto-0.29.0-py3-none-any.whl Python 3 none any Details

Total release size: 106.4 kB

Release files / keeps_learn_nexus_proto-0.29.0.tar.gz

Download URL keeps_learn_nexus_proto-0.29.0.tar.gz
Size 44.9 kB
Tags Source
SHA-256 checksum
How to use checksums
635fc0e649baaf250b67879795840f616dfd904b4191b2bb040168f38f1523cc
BLAKE2b-256 checksum
How to use checksums
99da7b59a91abfbbef838f4bf6b3cb5f9b8800444a8e61943f64d17f8aa28b48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.15

Release files / keeps_learn_nexus_proto-0.29.0-py3-none-any.whl

Download URL keeps_learn_nexus_proto-0.29.0-py3-none-any.whl
Size 61.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9cdc3efb61435b97d16ac74ef4391a772e88562f331c8d1819bd21207acaabef
BLAKE2b-256 checksum
How to use checksums
50d8d23d23842e7bf20c71dd293debbc290669024e1232d72c52c32b3a3048d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.15

Release history Release notifications | RSS feed

0.32.0

2 release files

0.31.0

2 release files

0.30.0

2 release files

This release

0.29.0 This release

2 release files

0.28.0

2 release files

0.27.0

2 release files

0.26.0

2 release files

0.25.0

2 release files

0.24.0

2 release files

0.23.0

2 release files

0.22.0

2 release files

0.21.0

2 release files

0.20.0

2 release files

0.19.0

2 release files

0.18.0

2 release files

0.17.0

2 release files

0.16.0

2 release files

0.15.0

2 release files

0.13.0

2 release files

0.11.0

2 release files

0.10.1

2 release files

0.9.0

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.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