Skip to content

Repository files navigation

Meter Driver

A vendor-neutral HTTP/SSE + optional-gRPC contract for meter drivers.

Any metering provider can implement this spec and be Thunder-Cloud compatible. Any software application can implement the client side and work with any meter driver that implements this spec. Neither side is coupled to the other's implementation — they are both just implementations of this document.

This repo is the contract, not an implementation. Thundercloud (an application) and SparkNet-Http (a driver) are two implementations of it.


What's here

Path Contents
docs/spec/index.md The specification itself: integration model, data conventions, required HTTP+SSE endpoints and events, the optional gRPC profile, and the compliance checklist.
openapi/meter-driver.yaml Machine-readable OpenAPI 3.1 document for the required HTTP+SSE contract.
proto/meter_driver.proto Normative protobuf schema for the optional gRPC profile (package meter_driver.v1, service MeterDriverControl).
conformance/ A self-check any implementation can run against its own endpoint to verify it actually implements what this repo says it does.

Python package

The contracts are generated into an installable Python package, meter-driver-spec. CI builds a self-contained, pure-Python wheel on each tagged release and attaches it to the GitHub release; nothing generated is committed. Pin a tagged release's wheel, then import per transport:

pip install "meter-driver-spec @ https://github.com/EarthSpark/meter-driver-spec/releases/download/<tag>/meter_driver_spec-<version>-py3-none-any.whl"
from meter_driver_spec.grpc import meter_driver_pb2, meter_driver_pb2_grpc   # gRPC (from proto/)
from meter_driver_spec.http import ApiClient, Configuration, NodesApi        # HTTP client (from openapi/)
from meter_driver_spec.http.models import RegisterNodeRequest                # HTTP models

Versioning

Tagged releases (v1.0.0, v1.1.0, ...) following semver: a breaking change to a required field, endpoint, event shape, or the gRPC package/service name is a major bump; additive, backward-compatible changes are minor; wording/clarification fixes are patch. Implementations pin to a tag and state which tag they implement. See CHANGELOG.md.

Governance

Changes go through a pull request here, reviewed against the existing spec text and the conformance checks. See CONTRIBUTING.md.

License

Apache 2.0 — permissive, patent-grant included, so any implementer (commercial or not) can build against this without asking permission.

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages