All Projects → googleapis → Gax Java

googleapis / Gax Java

Licence: bsd-3-clause
Google API Extensions for Java - shared runtime for clients generated by googleapis/gapic-generator

Programming Languages

java
68154 projects - #9 most used programming language

Labels

Projects that are alternatives of or similar to Gax Java

Anycable
Polyglot replacement for Ruby WebSocket servers with Action Cable protocol
Stars: ✭ 1,610 (+1101.49%)
Mutual labels:  grpc
Mix
☄️ PHP CLI mode development framework, supports Swoole, WorkerMan, FPM, CLI-Server / PHP 命令行模式开发框架,支持 Swoole、WorkerMan、FPM、CLI-Server
Stars: ✭ 1,753 (+1208.21%)
Mutual labels:  grpc
Sea
rpc framework built on grpc
Stars: ✭ 132 (-1.49%)
Mutual labels:  grpc
Purerpc
Asynchronous pure Python gRPC client and server implementation supporting asyncio, uvloop, curio and trio
Stars: ✭ 125 (-6.72%)
Mutual labels:  grpc
Go Proto Gql
Protobuff plugins for generating graphql schema and golang to graphql bindings. Also supports a graphql gateway (Alpha)
Stars: ✭ 127 (-5.22%)
Mutual labels:  grpc
Almost Famous
🌟 Almost-Famous(成名之路) ——卡牌游戏开源项目,架构使用SpringBoot+Netty+Maven+SpringCloud来搭建多进程分布式框架,包括Cloud、Unique、Login、Game、Match、Battle 等服务。
Stars: ✭ 131 (-2.24%)
Mutual labels:  grpc
Golang Examples
Stars: ✭ 114 (-14.93%)
Mutual labels:  grpc
Flatsharp
Fast, idiomatic C# implementation of Flatbuffers
Stars: ✭ 133 (-0.75%)
Mutual labels:  grpc
Go Grpc
A collection of gRPC and Go examples showcasing features of the framework
Stars: ✭ 127 (-5.22%)
Mutual labels:  grpc
Graphql Mesh
GraphQL Mesh — Query anything, run anywhere
Stars: ✭ 2,114 (+1477.61%)
Mutual labels:  grpc
Cleanit
Open-source Autonomy Software in Rust-lang with gRPC for the Roomba series robot vacuum cleaners. Under development.
Stars: ✭ 125 (-6.72%)
Mutual labels:  grpc
Dubbo Go Pixiu
Based on the proxy gateway service of dubbo-go, it solves the problem that the external protocol calls the internal Dubbo cluster. At present, it supports HTTP and gRPC[developing].
Stars: ✭ 124 (-7.46%)
Mutual labels:  grpc
Grpc Nebula
微服务治理框架简介
Stars: ✭ 132 (-1.49%)
Mutual labels:  grpc
Kubernetes Envoy Example
Teaching myself about Envoy on Kubernetes
Stars: ✭ 116 (-13.43%)
Mutual labels:  grpc
Mtproto
Telegram MTProto and its proxy (over gRPC) in Go (golang). API Layer: 71
Stars: ✭ 133 (-0.75%)
Mutual labels:  grpc
Rpc Framework Tutorials
Java分布式RPC服务框架教程,包括 Dubbo/Dubbox, Motan, gRPC.
Stars: ✭ 114 (-14.93%)
Mutual labels:  grpc
Protoeasy Go
Simpler usage of protoc. Deprecated.
Stars: ✭ 129 (-3.73%)
Mutual labels:  grpc
Abp.grpc
基于 ABP 框架开发的 Grpc 模块,支持 Consul 服务发现与服务注册。Grpc module developed based on ABP framework supports early service discovery and service registration.
Stars: ✭ 134 (+0%)
Mutual labels:  grpc
Go Grpc
A simpler grpc framework
Stars: ✭ 133 (-0.75%)
Mutual labels:  grpc
Vision4j Collection
Collection of computer vision models, ready to be included in a JVM project
Stars: ✭ 132 (-1.49%)
Mutual labels:  grpc

Google API Extensions for Java

Build Status

Code Coverage

Google API Extensions for Java (GAX Java) is a library which aids in the development of client libraries for server APIs, based on GRPC and Google API conventions.

Application code will rarely need to use most of the classes within this library directly, but code generated automatically from the API definition files can use services such as paged list iteration, request batching, and polling of long-running operations to provide a more convenient and idiomatic API surface to callers.

Currently, this library shouldn't be used independently from google-cloud-java, otherwise there is a high risk of diamond dependency problems, because google-cloud-java uses beta features from this library which can change in breaking ways between versions. See VERSIONING for more information.

Quickstart

If you are using Maven, add this to your pom.xml file

<dependency>
  <groupId>com.google.api</groupId>
  <artifactId>gax</artifactId>
  <version>1.62.0</version>
</dependency>
<dependency>
  <groupId>com.google.api</groupId>
  <artifactId>gax-grpc</artifactId>
  <version>1.62.0</version>
</dependency>

If you are using Gradle, add this to your dependencies

compile 'com.google.api:gax:1.62.0',
  'com.google.api:gax-grpc:1.62.0'

If you are using SBT, add this to your dependencies

libraryDependencies += "com.google.api" % "gax" % "1.62.0"
libraryDependencies += "com.google.api" % "gax-grpc" % "1.62.0"

Java Versions

Java 7 or above is required for using this library.

Contributing

Contributions to this library are always welcome and highly encouraged.

See the CONTRIBUTING documentation for more information on how to get started.

Versioning

This library follows Semantic Versioning, but with some additional qualifications:

  1. Components marked with @BetaApi are considered to be "0.x" features inside a "1.x" library. This means they can change between minor and patch releases in incompatible ways. These features should not be used by any library "B" that itself has consumers, unless the components of library B that use @BetaApi features are also marked with @BetaApi. Features marked as @BetaApi are on a path to eventually become "1.x" features with the marker removed.

    Special exception for google-cloud-java: google-cloud-java is allowed to depend on @BetaApi features without declaring the consuming code @BetaApi, because gax-java and google-cloud-java move in step with each other. For this reason, gax-java should not be used independently of google-cloud-java.

  2. Components marked with @InternalApi are technically public, but are only public for technical reasons, because of the limitations of Java's access modifiers. For the purposes of semver, they should be considered private.

  3. Components marked with @InternalExtensionOnly are stable for usage, but not for extension. Thus, methods will not be removed from interfaces marked with this annotation, but methods can be added, thus breaking any code implementing the interface. See the javadocs for more details on other consequences of this annotation.

Submodule notes

  • gax is stable (>= 1.0.0), so anything not marked @BetaApi, @InternalApi, or @InternalExtensionOnly won't break between minor releases. Anything marked @InternalExtensionOnly can only break extensions between minor releases.
  • gax-grpc is stable (>= 1.0.0), so anything not marked @BetaApi, @InternalApi, or @InternalExtensionOnly won't break between minor releases. Anything marked @InternalExtensionOnly can only break extensions between minor releases.
  • gax-httpjson is beta (0.x.y), so anything may change at any time and the public API should not be considered stable. There is no difference whether a class is marked @BetaApi or not; that annotation is only present as a reminder. There is also no difference whether a class is marked @InternalExtensionOnly or not; that only implies that the annotation will still be present in 1.0.0.

Feature notes

  • Long Running Operations - This feature is not yet considered stable.
  • Streaming - Streaming features are not yet considered stable.
  • Batching - Batching features are not yet considered stable.
  • Generated Code Support - Features to support generated code is not yet considered stable.
  • Testing - There are no plans to consider any code in the testlib jar to be stable.

Repository Structure

This repository contains the following java packages.

gax

  • com.google.api.gax.batching - Contains general-purpose batching logic.
  • com.google.api.gax.core - Contains core interfaces and classes that are not specific to grpc and could be used in other contexts.
  • com.google.api.gax.longrunning - Contains classes related to long running operations.
  • com.google.api.gax.paging - Contains classes related to list calls that return results in pages.
  • com.google.api.gax.retrying - Contains classes related to retrying API calls.
  • com.google.api.gax.rpc - Contains classes related to making RPC calls.

gax-grpc

  • com.google.api.gax.grpc - Contains classes that provide functionality on top of gRPC calls.
  • com.google.longrunning - Contains the mix-in client for long-running operations which is implemented by a number of Google APIs.

gax-httpjson

  • com.google.api.gax.httpjson - Contains classes that provide functionality on top of http/json calls.

License

BSD - See LICENSE for more information.

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].