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.30.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.30.0
File Size Uploaded
keeps_learn_nexus_proto-0.30.0.tar.gz 44.8 kB Details

Built distribution (wheel)

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

Total release size: 106.2 kB

Release files / keeps_learn_nexus_proto-0.30.0.tar.gz

Download URL keeps_learn_nexus_proto-0.30.0.tar.gz
Size 44.8 kB
Tags Source
SHA-256 checksum
How to use checksums
da5260c4577cdac8c1bc379de313fe785d30df87b55e9e6a76e61eb9ba4333d7
BLAKE2b-256 checksum
How to use checksums
a6e3b788bb0b1e021fd4f992d66cc04cf6e0443a3b1b6cbca99a23cf6db9eddb
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.30.0-py3-none-any.whl

Download URL keeps_learn_nexus_proto-0.30.0-py3-none-any.whl
Size 61.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f128985c1187b6c4f88e2ac6f157577836583c3ce38e831cdbe35befe03ca39f
BLAKE2b-256 checksum
How to use checksums
b6e6594bfe1077af53a210ddedd3f5fb239df0d993c5f8be217d7a567a911efc
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

This release

0.30.0 This release

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