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.33.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.33.0
File Size Uploaded
keeps_learn_nexus_proto-0.33.0.tar.gz 47.8 kB Details

Built distribution (wheel)

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

Total release size: 114.6 kB

Release files / keeps_learn_nexus_proto-0.33.0.tar.gz

Download URL keeps_learn_nexus_proto-0.33.0.tar.gz
Size 47.8 kB
Tags Source
SHA-256 checksum
How to use checksums
d24270d0c6ab97af900656c369ae2160163cc7aa1436da57437db9adf93ff985
BLAKE2b-256 checksum
How to use checksums
30a42164aee28865699d39f900e8d4c00bd8da299235d64e8f114bc30f0cc0ec
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.33.0-py3-none-any.whl

Download URL keeps_learn_nexus_proto-0.33.0-py3-none-any.whl
Size 66.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7a51290292e58ea7d89c5704a128d18f36408ef6b5bc15a46036763da3eb55e3
BLAKE2b-256 checksum
How to use checksums
6595ad75dbdf680389bad3da468d0088abc749dd13beb77fe801c0810a84bac7
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.33.0 This release

2 release files

0.32.0

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