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

# 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.32.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.32.0
File Size Uploaded
keeps_learn_nexus_proto-0.32.0.tar.gz 45.7 kB Details

Built distribution (wheel)

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

Total release size: 108.0 kB

Release files / keeps_learn_nexus_proto-0.32.0.tar.gz

Download URL keeps_learn_nexus_proto-0.32.0.tar.gz
Size 45.7 kB
Tags Source
SHA-256 checksum
How to use checksums
f36835fc99ccb024645dab19743178ef5042ae4f8585d18070c81cf33f56559a
BLAKE2b-256 checksum
How to use checksums
9c482e80c3642263e36bd9cd43c99b4fa569cd7d70da0bc2349682a7cdcf733b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.16

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

Download URL keeps_learn_nexus_proto-0.32.0-py3-none-any.whl
Size 62.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0376a0aa0e2c6699b53745c52119f503d48b01e7d5031c91b62e92c7238212c6
BLAKE2b-256 checksum
How to use checksums
02321cbb8fe5be6a871162abf17758fd7920702b00e3a469c90a6174281bd232
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.16

Release history Release notifications | RSS feed

This release

0.32.0 This release

2 release files

0.31.0

2 release files

0.30.0

2 release files

0.29.0

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