The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)

Related tags

Networkinggrpc
Overview

gRPC - An RPC library and framework

gRPC is a modern, open source, high-performance remote procedure call (RPC) framework that can run anywhere. gRPC enables client and server applications to communicate transparently, and simplifies the building of connected systems.

Homepage: grpc.io
Mailing List: [email protected]

Join the chat at https://gitter.im/grpc/grpc

To start using gRPC

To maximize usability, gRPC supports the standard method for adding dependencies to a user's chosen language (if there is one). In most languages, the gRPC runtime comes as a package available in a user's language package manager.

For instructions on how to use the language-specific gRPC runtime for a project, please refer to these documents

  • C++: follow the instructions under the src/cpp directory
  • C#: NuGet package Grpc
  • Dart: pub package grpc
  • Go: go get google.golang.org/grpc
  • Java: Use JARs from Maven Central Repository
  • Kotlin: Use JARs from Maven Central Repository
  • Node: npm install grpc
  • Objective-C: Add gRPC-ProtoRPC dependency to podspec
  • PHP: pecl install grpc
  • Python: pip install grpcio
  • Ruby: gem install grpc
  • WebJS: follow the grpc-web instructions

Per-language quickstart guides and tutorials can be found in the documentation section on the grpc.io website. Code examples are available in the examples directory.

Precompiled bleeding-edge package builds of gRPC master branch's HEAD are uploaded daily to packages.grpc.io.

To start developing gRPC

Contributions are welcome!

Please read How to contribute which will guide you through the entire workflow of how to build the source code, how to run the tests, and how to contribute changes to the gRPC codebase. The "How to contribute" document also contains info on how the contribution process works and contains best practices for creating contributions.

Troubleshooting

Sometimes things go wrong. Please check out the Troubleshooting guide if you are experiencing issues with gRPC.

Performance

See the Performance dashboard for performance numbers of master branch daily builds.

Concepts

See gRPC Concepts

About This Repository

This repository contains source code for gRPC libraries implemented in multiple languages written on top of a shared C core library src/core.

Libraries in different languages may be in various states of development. We are seeking contributions for all of these libraries:

Language Source
Shared C [core library] src/core
C++ src/cpp
Ruby src/ruby
Python src/python
PHP src/php
C# (core library based) src/csharp
Objective-C src/objective-c
Language Source repo
Java grpc-java
Kotlin grpc-kotlin
Go grpc-go
NodeJS grpc-node
WebJS grpc-web
Dart grpc-dart
.NET (pure C# impl.) grpc-dotnet
Comments
  • LB policies request re-resolution without shutting down

    LB policies request re-resolution without shutting down

    Fixes #12731.

    I changed the code by intuition and I am still uncertain about lots of logic here. This initial commit can be compiled but increases the flakiness of at least grpclb_end2end test. And there is some asan issue I am looking at.


    This change is Reviewable

    kind/enhancement cla: yes area/client channel 
    opened by AspirinSJL 189
  • grpclb re-resolution

    grpclb re-resolution

    Currently, grpclb will hand off the re-resolution decision to its embedded RR policy. This PR lets grpclb to be in charge of its re-resolution. The connectivity of the balancers will also be taken into consideration so that grpclb will re-resolve only when both balancers and backends have been unreachable for some timeout.


    This change is Reviewable

    kind/enhancement area/client channel 
    opened by AspirinSJL 160
  • Retry support

    Retry support

    ~~This is VERY preliminary code. It builds, and I don't think it breaks any existing functionality, but that's about all I can say for it at this point. There are "FIXME" comments all over the place that need to be addressed before this is done, and there may yet be some issues that I have not yet identified.~~

    ~~That having been said, I am sending it out at this point just to get a sanity check as to whether or not this approach is even moderately reasonable. Please look at the high-level structure and let me know if it seems reasonable. Also, please look at my use of atomics (and some of the FIXME comments about things that aren't currently atomics but may need to be) and let me know if it looks sane.~~

    ~~Also, note that I came up with what I think is a better alternative to the tee_byte_stream implementation in #10448. It will need some additional work later to support hedging, but I think the current approach is fine for retries. If it looks good to you, I can probably revert that other PR.~~

    ~~I would welcome any and all suggestions you may have on this. Thanks!~~

    This code is now ready for review!

    I would appreciate review from the following folks:

    • @ctiller: This code is really complex, and I am unwilling to trust it without careful review from you.
    • @dgquintas: Please review from the perspective of your general knowledge of the client channel code.
    • @ncteisen: Please review for compliance with the retry design.

    Some things to note:

    • This is a massive PR, so please let me know what I can do to make it easier to review. There is a large block comment in client_channel.cc describing the overall approach, but I'm sure it's not enough to understand everything. I would be happy to meet in person and do a code walk-through with some or all of you, or just answer any questions you may have.
    • This includes all configurable retry functionality except for the stats, which I will work on in a separate PR. (That will require working with the Census folks to figure out the right way to expose these stats.)
    • This does not include transparent retry support. That work depends on #11934 and will be added in a separate PR.
    • This does not include hedging support. I've kept that use-case in mind while writing this code, but more design discussions will need to occur to figure out how to implement it without impacting performance.
    • I have not yet verified that all tests pass, so there will no doubt be some fixes needed before this can be merged.
    • I will be interested to see what the performance impact of this is. It should hopefully be not very much, since all of the synchronization overhead is taken care of by the call combiner code, which was already merged. There is some additional memory allocation needed for this, but that's mostly done on the arena, so it should hopefully not have a big impact. (And the additional memory allocations can be avoided by disabling retries via a channel arg.)

    Please let me know if you have any questions. Thanks!


    This change is Reviewable

    cla: yes 
    opened by markdroth 154
  • Remove memset(0) from arena allocate memory.

    Remove memset(0) from arena allocate memory.

    Callers should properly initialize the memory.

    Note that to avoid performance regressions we need some reordering in the initialization of grpc_call.

    This behavior can be overridden using GRPC_ARENA_INIT_STRATEGY environment variable.

    I had two more changes in the following files which I will skip in the PR because they are purely performance changes for cache coherency. I will upload that as a separate patch once this PR is merged: src/core/lib/channel/channel_stack.cc src/core/lib/surface/call.cc


    This change is Reviewable

    lang/core release notes: yes 
    opened by soheilhy 150
  • Channel Tracing Implementation; Part 1

    Channel Tracing Implementation; Part 1

    Implements the basic channel tracing architecture.

    Adds channel_tracer and object_registry files. The tracers are held by channels and subchannels and only log channel creation for now. In a subsequent PR I will begin plumbing the tracing objects around and logging all of the interesting things happening

    Picks up work from #10259. That PR was too stale to do a merge or rebase, but I want to maintain history


    This change is Reviewable

    kind/enhancement area/core 
    opened by ncteisen 136
  • Add address sorting submodule for use in c-ares wrapper

    Add address sorting submodule for use in c-ares wrapper

    This adds code to sort IP addresses resolved by grpc/c-ares wrapper per RFC 6724. This used Android's getaddrinfo as a guide (the differences between this and Android's implementation are mostly cosmetic and based around hooking the address-sorting code into the grpc code base). So, the code is added as a custom submodule which is under Android's license.

    I'd like to have more end-to-end tests and cross-platform tests for this, (e.g. run the resolver_component_tests on IPv4-only machines, IPv6-only machines, machines with modified routing tables, Windows, etc.,and verify sorting results in those scenarios), but it looks like that involves a lot of setup, and so this tests by mocking libc functions.


    This change is Reviewable

    area/core cla: yes 
    opened by apolcyn 136
  • Bazel multipool config update, removed sentinel file

    Bazel multipool config update, removed sentinel file

    Added multipool config for large instances and standard instances, replacing the sentinel file for large instances. Also updated the RBE container to the image containing bazel 0.16.1

    area/tools release notes: no 
    opened by billfeng327 127
  • Integrate Grpc.Tools into msbuild system (C# only)

    Integrate Grpc.Tools into msbuild system (C# only)

    When Grpc.Tools is added to a C# project, the project recognizes .proto files. These .proto are compiled into .cs files placed in the object directory (under obj/...), and are not shown in Visual Studio, but are available to Intellisense nevertheless.

    The scripts support both "classic" projects and the new dotnet style projects. In line with the latter ones (when .cs files are just dropped into the directory are picked up and compiled), .proto files are handled the same way, so just placing a .proto file into the folder is enough to compile it, and compile its protoc outputs into the project target assembly.

    The "classic" project requires adding .proto files by one, and they are assigned a correct build action automatically. To manually add proto files to msbuild script, use 'ProtoBuf' item type.

    For native code C++ projects, there is no added support beyond just dropping the compiler as before. For all other project types, an error message is generated on an attempted build. More C++ support is on the way.

    Dependency change: the package now adds a dependency on Grpc.Tools of a matching version for managed projects only. This is naturally skipped for native C++, as the managed runtime is not required.

    Also packaged are proto includes for well-known types.


    Validated and confirmed working:

    • Windows (VS, classic C#, dotnet C#, C++)
    • Linux/Mono (both classic C# and dotnet C#)
    • Linux/dotnet (dotnet C# project only)

    There are quite a few questions I wanted to discuss. If anyone could help me with proper decicions, I would appreciate it.

    1. The captialization of generated .cs files. When I compile fooBar.proto, the resulting .cs file is called FooBar.proto. Is there a way around that? This does not seem to make sense in the build like this, when the .cs files are treated at best as temporary. I can certainly script around the issue in msbuild scripts, but why have it in the first place?

    2. If x.proto does not contain any RPC services. the corresponding xGrpc.cs is not generated (FWIW, the cpp plugin does not do that). This is not good for the build. While it is certainly possible to see if the file is there after compilation, it is impossible to learn if it was actually produced by it. In other words, if I take a service definition out of x.proto after having previously compiled it, I end up with a stale xGrpc.cs that is added to compilation. Of course, it is possible to write some msbuild incantations about this issue as well, but it would be much cleaner just to create a nearly empty xGrpc.cs stub even if no services are defined. So options I am asking about here are

    • a) Leave it as is and script some very ugly transformations around it.
    • b) Add a plugin option to do always generate the stub.
    • c) In fact, forget the option and just always generate the stub.
    1. I want to package cpp plugins also, and support to integrate gRPC into the build process. (I already have it packaged internally). This will cover the build process in Visual Studio. Should we do that?

    2. I am adding a bunch of files to the root of src/chsarp that only go into the nuget package. Is it better to place them into a subdirectory? Is Grpc.Tools subdirectory good?


    /cc @jskeet @hcoona
    Closes #4805
    /* #13098 */

    lang/C# cla: yes release notes: yes 
    opened by kkm000 126
  • C++ API review: reduce core/implementation leakage

    C++ API review: reduce core/implementation leakage

    If you liked internalization, you'll love C++ API review. The purpose of this PR is to clean up the use of breakable core structs from C++ public API. This has previously been done for the features that interfaced with code generation, but this now needs to be more pervasive. The basic principle is that core surface APIs and C++ implementation details should not leak through to C++ public API.

    The implementation strategy is

    1. when possible, privatize features that should have never been exposed
    2. deprecate pieces if they can be easily and meaningfully substituted with a purely C++ API
    3. co-opt items for which there is no other option, but try to give an alternative and more idiomatically C++ version for those when possible

    This supercedes #14106 and will be matched to a gRFC soon.


    This change is Reviewable

    area/core lang/c++ area/api disposition/stale 
    opened by vjpai 123
  • Channelz Python wrapper implementation

    Channelz Python wrapper implementation

    See Issue https://github.com/grpc/grpc/issues/17264

    • Expose the C-Core API in Cython layer
    • Handle the object translation
    • Create a separate package for Channelz specifically
    • Adding utilities for the new package
    kind/enhancement lang/Python release notes: yes 
    opened by lidizheng 109
  • Rich status transport implementation

    Rich status transport implementation

    Background

    gRPC spec defined two trailing data to indicate the status of a RPC call Status and Status-Message (Spec). But status code and a text message themselves are insufficient to express more complicate situation like the RPC call failed because of quota check of certain policy, or the stack trace from the crashed server, or obtain retry delay from the server (see error details).

    Objective

    So, gRPC needs a mechanism to transport those complex status. It is implemented in C++, Java, Golang, and now Python.

    Design

    It is quite straight forward, we provide two API:

    • A server API to pack the rich status proto.
    • A client API to unpack the rich status proto.

    The transportation is done by setting/getting a trailing metadata entry named grpc-status-details-bin. Rich status message is encoded by ProtoBuf and transmit as binary.

    Implementation

    This PR

    Related Issue

    Addresses: https://github.com/grpc/grpc/issues/16366

    kind/enhancement lang/Python release notes: yes 
    opened by lidizheng 106
  • [Q] To have better understanding on having `readonly` `MapField<,> and RepeatedField` in c#

    [Q] To have better understanding on having `readonly` `MapField<,> and RepeatedField` in c#

    It is still possible to mutate a RepeatedField with Add and AddRange methods similar to how it is possible to mutate other fields such as primitives or sub-messages. The only thing the current design ensures is that the reference to the list is immutable. Maybe Java uses builders and keeps the proto class immutable but in C# a proto class is definitely not immutable.

        /// <summary>Field number for the "retrieveFields" field.</summary>
        public const int RetrieveFieldsFieldNumber = 5;
        private static readonly pb::FieldCodec<string> _repeated_retrieveFields_codec
            = pb::FieldCodec.ForString(42);
        private readonly pbc::RepeatedField<string> retrieveFields_ = new pbc::RepeatedField<string>();
        /// <summary>
        ///Which fields to highlight or retrieve.
        /// </summary>
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public pbc::RepeatedField<string> RetrieveFields {
          get { return retrieveFields_; }
        }
    

    Why the following doesn't work or what issues it might cause:

        /// <summary>Field number for the "retrieveFields" field.</summary>
        public const int RetrieveFieldsFieldNumber = 5;
        private static readonly pb::FieldCodec<string> _repeated_retrieveFields_codec
            = pb::FieldCodec.ForString(42);
        private pbc::RepeatedField<string> retrieveFields_ = new pbc::RepeatedField<string>();
        /// <summary>
        ///Which fields to highlight or retrieve.
        /// </summary>
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public pbc::RepeatedField<string> RetrieveFields {
          get { return retrieveFields_; }
                set
                { 
                   // if null throw expectation?
                    retrieveFields_ = new pbc.RepeatedField<string>().Add(value);
                }
        }
    

    Both MapField<,> and RepeatedField does not support mutable

    kind/question priority/P3 untriaged 
    opened by Jeevananthan-23 0
  • Make grpc++_test target publicly visible

    Make grpc++_test target publicly visible

    Fix #31296

    I think Craig's concern here was the stability of the APIs. We could potentially add a disclaimer at the very top of all these files that we do not guarantee the stability of these files or this build target. What do y'all think?

    release notes: no bloat/none per-call-memory/neutral per-channel-memory/neutral 
    opened by yashykt 0
  • Change Some Cython classes to Enum

    Change Some Cython classes to Enum

    We have some Cython classes which should be created as Enum (For example, StatusCode), this is blocking us to use correct type annotation for them (Like here).

    This change is required for the following classes:

    • StatusCode: https://github.com/grpc/grpc/blob/master/src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi#L61
    • OperationType: https://github.com/grpc/grpc/blob/master/src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi#L101
    kind/enhancement lang/Python priority/P2 
    opened by XuanWang-Amos 0
  • Disable ruby artifact builds on v1.46.x

    Disable ruby artifact builds on v1.46.x

    Note this PR should not be up-merged to master

    Ruby artifact builds are broken on this branch which is preventing patch releases for other languages e.g. C#

    Since we don't actually plan to do any patch releases on v1.46.x for ruby, let's just disable ruby builds on this branch

    lang/ruby release notes: no bloat/none per-call-memory/neutral 
    opened by apolcyn 1
Releases(v1.49.2)
  • v1.49.2(Dec 9, 2022)

    This is release 1.49.2 (gamma) of gRPC Core.

    For gRPC documentation, see grpc.io. For previous releases, see Releases.

    This release contains refinements, improvements, and bug fixes, with highlights listed below.

    All

    • Backport of https://github.com/grpc/grpc/pull/31357 to mitigate https://github.com/advisories/GHSA-cfmr-vrgj-vqwv #31595
    Source code(tar.gz)
    Source code(zip)
  • v1.51.1(Nov 29, 2022)

    This is release gRPC Core 1.51.1 (galaxy).

    For gRPC documentation, see grpc.io. For previous releases, see Releases.

    This release contains refinements, improvements, and bug fixes.

    Python

    • Revert "Build with System OpenSSL on Mac OS arm64 (#31096)". (#31739)
    Source code(tar.gz)
    Source code(zip)
  • v1.51.0(Nov 21, 2022)

    This is release gRPC Core 1.51.0 (galaxy).

    For gRPC documentation, see grpc.io. For previous releases, see Releases.

    This release contains refinements, improvements, and bug fixes.

    Core

    • Bump core version 202211082118. (#31585)
    • c-ares DNS resolver: fix logical race between resolution timeout/cancellation and fd readability. (#31443)
    • [log] Longer space for filenames. (#31432)
    • c-ares DNS resolver: remove unnecessary code in SRV callback. (#31426)
    • Correct the domain-socket client address read out from the ServerContext. (#31108)
    • outlier detection: remove env var protection. (#31251)
    • EventEngineFactoryReset - remove custom factory and reset default engine. (#30554)
    • [tls] Remove support for pthread tls. (#31040)

    C++

    • Added version macros to gRPC C++. (#31033)
    • OpenCensus: Move measures, views and CensusContext to include file. (#31341)
    • GcpObservability: Add experimental public target. (#31339)

    C#

    • Fix msbuild failing when '@' is present in path (2nd attempt). (#31527)
    • Revert "Fix msbuild failing when '@' is present in path". (#31464)
    • Fix msbuild failing when '@' is present in path. (#31133)

    PHP

    • fixing php 8.2 deprecations. (#30997)

    Python

    • Fix lack of cooldown between poll attempts. (#31550)
    • Build with System OpenSSL on Mac OS arm64. (#31096)
    • Remove enum and future. (#31381)
    • [Remove Six] Remove dependency on six. (#31340)
    • Update xds-protos package to pull in protobuf 4.X. (#31113)
    Source code(tar.gz)
    Source code(zip)
  • v1.51.0-pre1(Nov 14, 2022)

  • v1.50.1(Oct 27, 2022)

    This is release gRPC Core 1.50.1 (galley).

    For gRPC documentation, see grpc.io. For previous releases, see Releases.

    This release contains refinements, improvements, and bug fixes, with highlights listed below.

    All

    • Fix Bazel 4 support and objc bazel tests on python3.9 (#31410)
    Source code(tar.gz)
    Source code(zip)
  • v1.50.0(Oct 14, 2022)

    This is release gRPC Core 1.50.0 (galley).

    For gRPC documentation, see grpc.io. For previous releases, see Releases.

    This release contains refinements, improvements, and bug fixes, with highlights listed below.

    Core

    • Derive EventEngine from std::enable_shared_from_this. (#31060)
    • Revert "Revert "[chttp2] fix stream leak with queued flow control update and absence of writes (#30907)" (#30991)". (#30992)
    • [chttp2] fix stream leak with queued flow control update and absence of writes. (#30907)
    • Remove gpr_codegen. (#30899)
    • client_channel: allow LB policy to communicate update errors to resolver. (#30809)
    • FaultInjection: Fix random number generation. (#30623)

    C++

    • OpenCensus Plugin: Add measure and views for started RPCs. (#31034)

    C#

    • Grpc.Tools: Parse warnings from libprotobuf (fix #27502). (#30371)
    • Grpc.Tools add support for env variable GRPC_PROTOC_PLUGIN (fix #27099). (#30411)
    • Grpc.Tools document AdditionalImportDirs. (#30405)
    • Fix OutputOptions and GrpcOutputOptions (issue #25950). (#30410)

    Python

    • Support Python 3.11. (#30818)

    Ruby

    • Fix ruby windows ucrt build. (#31051)
    • Drop support for ruby 2.5. (#30699)
    Source code(tar.gz)
    Source code(zip)
  • v1.50.0-pre1(Sep 29, 2022)

  • v1.49.1(Sep 22, 2022)

    This is release 1.49.1 (gamma) of gRPC Core.

    For gRPC documentation, see grpc.io. For previous releases, see Releases.

    This release contains refinements, improvements, and bug fixes, with highlights listed below.

    All

    • Update protobuf to v21.6 on 1.49.x. (#31028)

    Ruby

    • Backport "Fix ruby windows ucrt build #31051" to 1.49.x. (#31053)
    Source code(tar.gz)
    Source code(zip)
  • v1.46.5(Sep 22, 2022)

    This is release 1.46.5 (golazo) of gRPC Core.

    For gRPC documentation, see grpc.io. For previous releases, see Releases.

    This release contains refinements, improvements, and bug fixes, with highlights listed below.

    All

    • Update protobuf to v3.19.5 on v1.46.x. (#31032)

    Core

    • Backport to 1.46.x: priority and ring_hash LBs: fix interactions when using ring_hash under priority (#29332). (#30253)
    • Backport to v1.46.x: ring hash: fix picker propagation bug in xds_cluster_manager policy (#29959). (#30254)

    C#

    • Fix client resource leaks-issues 8451 and 28153. (#30290)
    Source code(tar.gz)
    Source code(zip)
  • v1.48.2(Sep 22, 2022)

  • v1.47.2(Sep 22, 2022)

  • v1.49.0(Sep 14, 2022)

    This is release 1.49.0 (gamma) of gRPC Core.

    For gRPC documentation, see grpc.io. For previous releases, see Releases.

    This release contains refinements, improvements, and bug fixes, with highlights listed below.

    Core

    • Backport: "stabilize the C2P resolver URI scheme" to v1.49.x. (#30654)
    • Bump core version. (#30588)
    • Update OpenCensus to HEAD. (#30567)
    • Update protobuf submodule to 3.21.5. (#30548)
    • Update third_party/protobuf to 3.21.4. (#30377)
    • [core] Remove GRPC_INITIAL_METADATA_CORKED flag. (#30443)
    • HTTP2: Fix keepalive time throttling. (#30164)
    • Use AnyInvocable in EventEngine APIs. (#30220)

    Python

    • Support Python 3.11 (#30818). (#30944)
    • Add type stub generation support to grpcio-tools. (#30498)

    Ruby

    • Backport "Drop support for ruby 2.5 (#30699)" to v1.49.x. (#30762)
    Source code(tar.gz)
    Source code(zip)
    grpc_objective_c_core-1.49.0-xcframework.zip(15.20 MB)
    grpc_objective_c_grpc-1.49.0-xcframework.zip(872.29 KB)
    grpc_objective_c_plugin-1.49.0-macos-x86_64.zip(1.18 MB)
    grpc_objective_c_protorpc-1.49.0-xcframework.zip(102.38 KB)
  • v1.49.0-pre3(Sep 1, 2022)

  • v1.49.0-pre2(Aug 30, 2022)

  • v1.48.1(Aug 31, 2022)

  • v1.49.0-pre1(Aug 18, 2022)

  • v1.48.0(Jul 19, 2022)

    This is release 1.48.0 (garum) of gRPC Core.

    For gRPC documentation, see grpc.io. For previous releases, see Releases.

    This release contains refinements, improvements, and bug fixes, with highlights listed below.

    Core

    • Upgrade Abseil to LTS 20220623.0 . (#30155)
    • Call: Send cancel op down the stack even when no ops are sent. (#30004)
    • FreeBSD system roots implementation. (#29436)
    • xDS: Workaround to get gRPC clients working with istio. (#29841)

    Python

    • Set Correct Platform Tag in Wheels on Mac OS with Python 3.10. (#29857)
    • [Aio] Ensure Core channel closes when deallocated. (#29797)
    • [Aio] Fix the wait_for_termination return value. (#29795)

    Ruby

    • Make the gem build on TruffleRuby. (#27660)
    • Support for prebuilt Ruby binary on x64-mingw-ucrt platform. (#29684)
    • [Ruby] Add ruby_abi_version to exported symbols. (#28976)

    Objective-C

    First developer preview of XCFramework binary distribution via Cocoapod (#28749).

    This brings in significant speed up to local compile time and includes support for Apple Silicon build.

    • The following binary pods are made available for ObjC V1 & V2 API
      • gRPC-XCFramework (source pod gRPC)
      • gRPC-ProtoRPC-XCFramework (source pod gRPC-ProtoRPC)
    • The following platforms and architectures are included
      • ios: armv7, arm64 for device. arm64, i386, x86_64 for simulator
      • macos: x86_64 (Intel), arm64 (Apple Silicon)
    Source code(tar.gz)
    Source code(zip)
    grpc_objective_c_core-1.48.0-xcframework.zip(58.66 MB)
    grpc_objective_c_grpc-1.48.0-xcframework.zip(1.77 MB)
    grpc_objective_c_plugin-1.48.0-macos-x86_64.zip(1.16 MB)
    grpc_objective_c_protorpc-1.48.0-xcframework.zip(256.14 KB)
  • v1.47.1(Jul 15, 2022)

    This is release gRPC Core 1.47.1 (gridman).

    For gRPC documentation, see grpc.io. For previous releases, see Releases.

    This release contains refinements, improvements, and bug fixes.

    Core

    • [Backport] Using string rep for status-time (#30123) #30145
    • [Backport] Tell MSVC to build grpc with utf-8 (#30003) #30153
    • [Backport] Ring hash: fix picker propagation bug in xds_cluster_manager policy (#29959) #30241
    Source code(tar.gz)
    Source code(zip)
  • v1.46.4(Jul 6, 2022)

    This is release gRPC Core 1.46.4 (golazo).

    For gRPC documentation, see grpc.io. For previous releases, see Releases.

    This release contains refinements, improvements, and bug fixes.

    Core

    • [Backport] Using string rep for status-time (#30123) #30146
    Source code(tar.gz)
    Source code(zip)
  • v1.48.0-pre1(Jul 5, 2022)

  • v1.47.0(Jun 22, 2022)

    This is release 1.47.0 (gridman) of gRPC Core.

    For gRPC documentation, see grpc.io. For previous releases, see Releases.

    This release contains refinements, improvements, and bug fixes, with highlights listed below.

    Announcement

    gRPC C++ 1.47.0 is the first release requiring C++14 (proposal). For those who cannot upgrade to C++14 right now, you can use gRPC C++ 1.46.x in the meantime and gRPC C++ 1.46.x will be maintained by having fixes for critical bugs (P0) and security fixes until 2023-06-01.

    Core

    • xDS: Workaround to get gRPC clients working with istio (#29841). (#29850)
    • Bump core version to 25.0.0 for upcoming release. (#29775)
    • Initial support for Haiku. (#27793)
    • Add NetBSD support (Community-supported). (#29542)
    • server: per-rpc backend metric reporting. (#29621)
    • Remove C# implementation (individual packages will continue to be maintained through v2.46.x patches or moved to grpc-dotnet). (#29225)

    C++

    • Expose NoOpCertificateVerifier to C++. (#29322)
    • RouteGuide example: Abort if database file not found. (#29398)

    C#

    • C#: Suppress CS8981 in generated source. (#29708)

    Python

    • Set Correct Platform Tag in Wheels on Mac OS with Python 3.10 (#29857). (#30026)
    • Removed manylinux2010 python artifacts. (#29734)
    • Allow grpcio to be built against system abseil-cpp. (#27550)
    • [Python] Add an UDS example. (#29592)

    Ruby

    • Backport "Support for prebuilt Ruby binary on x64-mingw-ucrt platform (#29684)" to 1.47.x. (#29868)
    • Upgrade ruby rake-compiler-dock images (and stop building ruby gem artifacts on mac, in favor of rake-compile-dock darwin builds). (#29304)

    Other

    • Downgrade io_bazel_rules_go to v0.27.0 restore Bazel 3.x support. (#29596)
    Source code(tar.gz)
    Source code(zip)
    grpc_objective_c_plugin-1.47.0-macos-x86_64.zip(1.16 MB)
  • v1.47.0-pre1(Jun 17, 2022)

    This is a prerelease of gRPC Core 1.47.0 (gridman).

    Please see the notes for the previous releases here: https://github.com/grpc/grpc/releases. Please consult https://grpc.io/ for all information regarding this product.

    This prerelease contains refinements, improvements, and bug fixes.

    Source code(tar.gz)
    Source code(zip)
  • v1.46.3(May 20, 2022)

  • v1.46.2(May 16, 2022)

    This is release gRPC Core 1.46.2 (golazo).

    For gRPC documentation, see grpc.io. For previous releases, see Releases.

    This release contains refinements, improvements, and bug fixes.

    Ruby

    • Backport "[Ruby]fix a rake compile error since rake-compiler ~> 1.1 (#28666)". (#29656)
    • Backport "Upgrade ruby rake-compiler-dock images (#29304)". (#29657)
    Source code(tar.gz)
    Source code(zip)
  • v1.46.1(May 11, 2022)

  • v1.46.0(May 4, 2022)

    This is release 1.46.0 (golazo) of gRPC Core.

    For gRPC documentation, see grpc.io. For previous releases, see Releases.

    This release contains refinements, improvements, and bug fixes, with highlights listed below.

    Announcement

    gRPC C++ 1.46 will be the last release supporting C++11, future releases will require C++ >= 14. We plan to backport critical (P0) bugs and security fixes to this release for a year, that is, until 2023-06-01. This change won't bump the major version of gRPC since this doesn't introduce API changes. Hence, the next version requiring C++14 will be 1.47 (context).

    Core

    • Ignore Connection Aborted errors on accept. (#29318)
    • Filter content-length metadata from the application. (#29295)
    • RetryFilter: Cleanup pending byte stream. (#29245)
    • HTTP Proxy: Ignore empty entry in no_proxy list. (#29217)
    • Adding http/1.1 support in httpcli. (#29238)
    • HTTP2: Initiate write for acknowledging SETTINGS frame. (#29218)
    • Change the unsupported polling strategy log for forking to GPR_INFO. (#29232)
    • Handle SSL_ERROR_WANT_WRITE error. (#29176)
    • TCP Async Connect: Fix Heap use-after-free. (#29209)
    • HTTP2: Add graceful goaway. (#29050)
    • Remove epollex poller. (#29160)
    • TlsCredentials: Comparator implementation. (#28940)
    • Decrease verbosity of alts handshaker logs which can happen during cancellation. (#29058)
    • HTTP2: Should not run cancelling logic on servers when receiving GOAWAY. (#29067)
    • HTTP2: Don't throttle pings from the server. (#29053)
    • Include ADS stream error in XDS error updates. (#29014)
    • Remove idempotent/cacheable requests. (#28922)

    C++

    • Add bazel cpp distribtest for grpc_cc_library. (#29175)

    C#

    • Add support for grpc-dotnet in GKE benchmarks. (#28975)
    • Sync unary call after shutdown: Add a repro and fix for #19090 . (#23003)
    • Remove C# Legacy (a.k.a. "Classic") csproj example. (#29102)

    Python

    • Add Python GCF Distribtest. (#29303)
    • Add Python Reflection Client. (#29085)
    • Revert "Fix prefork handler register's default behavior". (#29229)
    • Fix prefork handler register's default behavior. (#29103)
    • Fix fetching CXX variable in setup.py. (#28873)

    Ruby

    • Support pre-built binaries for Ruby 3.1. (#29000)
    • Make sure to always receive initial metadata in ruby. (#29155)
    Source code(tar.gz)
    Source code(zip)
    grpc_objective_c_plugin-1.46.0-macos-x86_64.zip(1.16 MB)
  • v1.46.0-pre2(Apr 22, 2022)

  • v1.46.0-pre1(Apr 18, 2022)

  • v1.45.2(Apr 8, 2022)

    This is release 1.45.2 (gravity) of gRPC Core.

    For gRPC documentation, see grpc.io. For previous releases, see Releases.

    This release contains refinements, improvements, and bug fixes, with highlights listed below.

    Core

    • Various fixes related to XDS (https://github.com/grpc/grpc/pull/29314, https://github.com/grpc/grpc/pull/29340, https://github.com/grpc/grpc/pull/29339)
    • HTTP2: Should not run cancelling logic on servers when receiving GOAWAY (https://github.com/grpc/grpc/pull/29307)
    Source code(tar.gz)
    Source code(zip)
  • v1.45.1(Apr 1, 2022)

    This is release 1.45.1 (gravity) of gRPC Core.

    For gRPC documentation, see grpc.io. For previous releases, see Releases.

    This release contains refinements, improvements, and bug fixes, with highlights listed below.

    Core

    • Switched to epoll1 as a default polling engine for Linux (#29239)
    • Various fixes related to XDS (https://github.com/grpc/grpc/pull/29240, https://github.com/grpc/grpc/pull/29242, https://github.com/grpc/grpc/pull/29243, https://github.com/grpc/grpc/pull/29244, https://github.com/grpc/grpc/pull/29280)

    Python

    • Revert "Remove GRPC_ENABLE_FORK_SUPPORT from setup.py" (#29230)
    Source code(tar.gz)
    Source code(zip)
Owner
grpc
A high performance, open source, general-purpose RPC framework
grpc
Repo used to maintain all notes and scripts developed during my DevNet Expert studies

DevNet Expert Studies Exam Date: TBD (Waiting for registration to open) This repository will be used to track my progress and maintain all notes/scrip

Dan 32 Dec 11, 2022
A Cheap Flight Alert program sends you a SMS to notify cheap flights in next 8 months.

Flight Dealer A Cheap Flight Alert program sends you a SMS to notify cheap flights (return trips) in next 6 months. Installing Download the Python 3 i

Aytaç Kaşoğlu 2 Feb 10, 2022
A library of functions that can be used to manage the download of claims from the LBRY network.

lbrytools A library of functions that can be used to manage the download of claims from the LBRY network. It includes methods to download claims by UR

13 Dec 03, 2022
Port Traffic/Bandwidth Monitor Script

python-switch-port-traffic-alarm Port Traffic/Bandwidth Monitor Script That's an Switch Port Traffic monitor program is checking the switch uplink por

goksinenki 4 Sep 02, 2021
A simple, 2-person chat program that runs on a single computer. No Internet, just you

localChat A simple, 2-person chat program that runs on a single computer. No Internet, just you. Simple and Local This was created with ease of use in

Owls 2 Aug 19, 2022
A simple tool to utilize the basic functionality of the Private API From Virus Total

Welcome To VT-SCAN (viurs total api) Information This is a simple tool to utilize the basic functionality of the Private API From Virus Total. with th

0X0ŽĒR∅⁰ 1 Sep 21, 2022
This Tool Help To Information gathering for domain name or ip address...

Owl-Eye This Tool Help To Information gathering for domain name or ip address... follow this command $apt update && upgrade $apt install python apt in

Black Owl 6 Nov 12, 2022
It can be used both locally and remotely (indicating IP and port)

It can be used both locally and remotely (indicating IP and port). It automatically finds the offset to the Instruction Pointer stored in the stack.

DiegoAltF4 13 Dec 29, 2022
An ansible playbook to set up wireguard server.

Poor man's VPN (pay for only what you need) An ansible playbook to quickly set up Wireguard server for occasional personal use. It takes around five m

Amrit Bera 613 Dec 25, 2022
sync application configuration and settings across multiple multiplatform devices

sync application configuration and settings across multiple multiplatform devices ✨ Key Features • ⚗️ Installation • 📑 How To Use • 🤔 FAQ • 🛠️ Setu

Souvik 6 Aug 25, 2022
🐛 Self spreading Botnet based on Mirai C&C Arch, spreading through SSH and Telnet protocol.

HBot Self spreading Botnet based on Mirai C&C Arch, spreading through SSH and Telnet protocol. Modern script fullly written in python3. Warning. This

Ѵιcнч 137 Nov 14, 2022
Dnspython is a DNS toolkit for Python.

dnspython is a DNS toolkit for Python. It supports almost all record types. It can be used for queries, zone transfers, and dynamic updates. It supports TSIG authenticated messages and EDNS0.

Bob Halley 2.1k Jan 06, 2023
🐛 SSH self spreading worm written in python3 to propagate a botnet.

Mirkat SSH self spreading worm written in python3 to propagate a botnet. Install tutorial. cd ./script && sh setup.sh Support me. ⚠️ If this reposito

Ѵιcнч 58 Nov 01, 2022
A Powerful, Smart And Simple Userbot In Telethon

Owner: KeinShin 🇮🇳 BLACK LIGHTNING A Powerful, Smart And Simple Userbot In Telethon. Credits This is A Remix Bot Of Many UserBot. DARKCOBRA FridayUs

Akki ThePro 1 Nov 29, 2021
High capacity, high availability, well connected, fast lightning node.

LND ⚡ Routing High capacity, high availability, well connected, fast lightning node. We aim to become a top liquidity provider for the lightning netwo

18 Dec 16, 2022
A live streaming chatroom involving multiple modalities, such as voice, gesture, and facial expression

HiLive A live streaming chatroom involving multiple modalities, such as voice, gesture, and facial expression. Introduction We focus on demonstrating

Ryan Yen 2 Dec 02, 2021
A repository dedicated to IoT(internet of things ) and python scripts

📑 Introduction Week of Learning is a weekly program in which you will get all the necessary knowledge about Circuit-Building, Arduino and Micro-Contr

27 Nov 22, 2022
A library for interacting with APNs and VoIP using HTTP/2.

kalyke A library for interacting with APNs and VoIP using HTTP/2. Installation kalyke requires python 3.6 or later. $ pip install kalyke-apns Usage AP

Yuya Oka 11 Dec 08, 2022
A Project to resolve hostname and receive IP

hostname-resolver A Project to resolve hostname and receive IP Installation git clone https://github.com/ihapiw/hostname-resolver.git Head into the ho

iHapiW 5 Sep 12, 2022
Query protocol and response

whois Query protocol and response _MᵃˢᵗᵉʳBᵘʳⁿᵗ_ _ ( ) _ ( )( ) _ | | ( ) | || |__ _ (_) ___ | | | | | || _ `\ /'_`\ | |/',__) |

MasterBurnt 4 Sep 05, 2021