All Projects → googleapis → Api Common Protos

googleapis / Api Common Protos

Licence: apache-2.0
A standard library for use in specifying protocol buffer APIs.

Projects that are alternatives of or similar to Api Common Protos

Ola
The Open Lighting Architecture - The Travel Adaptor for the Lighting Industry
Stars: ✭ 424 (+233.86%)
Mutual labels:  api, protobuf
Protoman
Postman for protobuf APIs
Stars: ✭ 241 (+89.76%)
Mutual labels:  api, protobuf
Apidebugger
A IDEA plug-in to help you easily complete the API debugging.
Stars: ✭ 125 (-1.57%)
Mutual labels:  api
Abstracting Fastapi Services
FastAPI application and service structure for a more maintainable codebase – See full article
Stars: ✭ 127 (+0%)
Mutual labels:  api
Kinopoiskpy
Python API to kinopoisk.ru
Stars: ✭ 126 (-0.79%)
Mutual labels:  api
Directus
Open-Source Data Platform 🐰 — Directus wraps any SQL database with a real-time GraphQL+REST API and an intuitive app for non-technical users.
Stars: ✭ 13,190 (+10285.83%)
Mutual labels:  api
Dm env
A Python interface for reinforcement learning environments
Stars: ✭ 127 (+0%)
Mutual labels:  api
Pix Api Recebimentos
Definição da API de recebimentos PIX
Stars: ✭ 125 (-1.57%)
Mutual labels:  api
Ewelink Api
eWeLink API for JavaScript
Stars: ✭ 128 (+0.79%)
Mutual labels:  api
Python Tumblpy
A Python Library to interface with Tumblr v2 REST API & OAuth
Stars: ✭ 126 (-0.79%)
Mutual labels:  api
Pokemongoapi Php
Pokemon Go API PHP library
Stars: ✭ 127 (+0%)
Mutual labels:  api
Jsonrpcserver
Process JSON-RPC requests in Python
Stars: ✭ 126 (-0.79%)
Mutual labels:  api
Api Golang
golang多款短视频无水印视频解析接口包含抖音微视快手火山皮皮虾最右
Stars: ✭ 125 (-1.57%)
Mutual labels:  api
Falanx
Generates F# code from protobuf schema for binary and json format
Stars: ✭ 127 (+0%)
Mutual labels:  protobuf
Hafas Client
JavaScript client for HAFAS public transport APIs.
Stars: ✭ 125 (-1.57%)
Mutual labels:  api
Pfsense Api
The missing REST API package for pfSense
Stars: ✭ 126 (-0.79%)
Mutual labels:  api
Adonis Bumblebee
Api Transformer for AdonisJs Framework
Stars: ✭ 125 (-1.57%)
Mutual labels:  api
Pubg
Playerunknown’s Battlegrounds Websocket API example. Feel free to ask questions in Discord: Hormold#0683
Stars: ✭ 126 (-0.79%)
Mutual labels:  api
Ajax Movie Recommendation System With Sentiment Analysis
Content-Based Recommender System recommends movies similar to the movie user likes and analyses the sentiments on the reviews given by the user for that movie.
Stars: ✭ 127 (+0%)
Mutual labels:  api
Geeksay
🤓 geeks will ctrl+s the world!
Stars: ✭ 127 (+0%)
Mutual labels:  api

Common Protos

release level

This repository is a home for the protocol buffer types which are common dependencies throughout the Google API ecosystem, and which are made available for use as dependencies elsewhere.

About protocol buffers

Protocol buffers are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data – think XML, but smaller, faster, and simpler. You define how you want your data to be structured once, then you can use special generated source code to easily write and read your structured data to and from a variety of data streams and using a variety of languages.

One popular use for protocol buffers, both within Google and elsewhere, is for specifying API design. They serve as a useful representation for API serivices, methods, and fields. You can read more about API design philosophy with protocol buffers by consulting our API Design Guide.

Why a common protos repository?

When writing protocol buffers, it is common to need to reuse common patterns. For example, common types show up in many different APIs, but have a consistent implementation. The same is true elsewhere.

This repository seeks to be a home for such types; protocol buffer authors may check out this repository and import them into their own work to save effort.

The protos in the various subdirectories in this repository have different purposes, and are documented in their respective README files.

Using these protos

These protos are made available under an Apache license (see LICENSE) and you are free to depend on them within your applications. They are considered stable and will not change in backwards-incompaible ways.

In order to depend on these protos, use proto import statements that reference the base of this repository, for example:

syntax = "proto3";

import "google/type/color.proto";


// A message representing a paint can.
message PaintCan {
  // The size of the paint can, in gallons.
  float size_gallons = 1;

  // The color of the paint.
  google.type.Color color = 2;
}

If you are using protoc (or other similar tooling) to compile these protos yourself, you will likely require a local copy. Clone this repository to a convenient location and use --proto_path to specify the root of this repository on your machine to the compiler.

Packages

Additionally, if using these common protos, it is not necessary to ship the compiled types yourself in many common languages. Google provides a common protos package in several languages, which can be added as a dependency, and which makes these types available.

Note that if using these packages, you will still need a local copy of these protos when using protoc, but you will not need to ship compiled versions of them. (This is consistent with protoc's default behavior of only providing compiled output for the files specifically requested, and not their imports.)

google.protobuf types (separate from this repo)

There are a small number of types that are so common that they are included in the actual protocol buffers runtime itself. These are anything with an import path beginning with google/protobuf/, and notably includes timestamps and durations.

These are not defined in this directory, and you do not need to follow any of the instructions for including this (as discussed in the root README file) if you want to use those. They are part of protocol buffers, and an import of those will "just work". These are colloquially referred to as "well-known types".

Disclaimer

These protos are made available by Google, but are not considered to be an official Google product.

License

These protos are licensed using the Apache 2.0 software license, a permissive, copyfree license. You are free to use them in your applications provided the license terms are honored.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].