# open-telemetry.opentelemetry-proto
**Repository Path**: ws-mirror-github/open-telemetry.opentelemetry-proto
## Basic Information
- **Project Name**: open-telemetry.opentelemetry-proto
- **Description**: https://github.com/open-telemetry/opentelemetry-proto
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-04-26
- **Last Updated**: 2023-04-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Language Independent Interface Types For OpenTelemetry
[](https://github.com/open-telemetry/opentelemetry-proto/actions?query=workflow%3A%22Build+Check%22+branch%3Amain)
The proto files can be consumed as GIT submodules or copied and built directly in the consumer project.
The compiled files are published to central repositories (Maven, ...) from OpenTelemetry client libraries.
See [contribution guidelines](CONTRIBUTING.md) if you would like to make any changes.
## OTLP/JSON
See additional requirements for [OTLP/JSON wire representation here](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/otlp.md#json-protobuf-encoding).
## Generate gRPC Client Libraries
To generate the raw gRPC client libraries, use `make gen-${LANGUAGE}`. Currently supported languages are:
* cpp
* csharp
* go
* java
* objc
* openapi (swagger)
* php
* python
* ruby
## Maturity Level
Component | Maturity |
-------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------|
**Binary Protobuf Encoding** | |
common/* | Stable |
metrics/\*
collector/metrics/* | Stable |
resource/* | Stable |
trace/trace.proto
collector/trace/* | Stable |
trace/trace_config.proto | Alpha |
logs/\*
collector/logs/* | Stable |
**JSON encoding** | |
All messages | [Stable](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/otlp.md#json-protobuf-encoding) |
(See [maturity-matrix.yaml](https://github.com/open-telemetry/community/blob/47813530864b9fe5a5146f466a58bd2bb94edc72/maturity-matrix.yaml#L57)
for definition of maturity levels).
## Stability Definition
Components marked `Stable` provide the following guarantees:
- Field types, numbers and names will not change.
- Numbers assigned to enum choices will not change.
- Service names and service package names will not change.
- Service operation names, parameter and return types will not change.
The following changes are allowed:
- Message names may change.
- Enum names may change.
- Enum choice names may change. This is allowed because enum choice names are not sent on
the wire.
- The location of messages and enums, i.e. whether they are declared at the top
lexical scope or nested inside another message may change.
- Package names may change.
- Directory structure, location and the name of the files may change.
Note that none of the above allowed changes affects the binary wire representation or the
JSON wire representation.
The following additive changes are allowed:
- Adding new fields to existing messages.
- Adding new messages or enums.
- Adding new choices to existing enums.
- Adding new choices to existing oneof fields.
- Adding new services.
- Adding new methods to existing services.
All the additive changes above must be accompanied by an explanation about how
new and old senders and receivers that implement the version of the protocol
before and after the change interoperate.
No guarantees are provided whatsoever about the stability of the code that
is generated from the .proto files by any particular code generator.
## Experiments
In some cases we are trying to experiment with different features. In this case,
we recommend using an "experimental" sub-directory instead of adding them to any
protocol version. These protocols should not be used, except for
development/testing purposes.
Another review must be conducted for experimental protocols to join the main project.