<commit_before># gRPC C++

This directory contains the C++ implementation of gRPC.

# To start using gRPC C++

This section describes how to add gRPC as a dependency to your C++ project.

In the C++ world, there's no universally accepted standard for managing project dependencies.
Therefore, gRPC supports several major build systems, which should satisfy most users.

## Supported Platforms

* Officially Supported: These platforms are officially supported. We test our
  code on these platform and have automated continuous integration tests for
  them.

* Best Effort: We do not have continous integration tests for these, but we are
  fairly confident that gRPC C++ would work on them. We will make our best
  effort to support them, and we welcome patches for such platforms, but we
  might need to declare bankruptcy on some issues.

* Community Supported: These platforms are supported by contributions from the
  open source community, there is no official support for them. Breakages on
  these platforms may go unnoticed, and the community is responsible for all
  maintenance. Unmaintained code for these platforms may be deleted.

| Operating System | Architectures | Versions | Support Level |
|------------------|---------------|----------|---------------|
| Linux - Debian, Ubuntu, CentOS | x86, x64      | clang 4+, GCC 5.1+     | Officially Supported |
| Windows 10+                    | x86, x64      | Visual Studio 2015+    | Officially Supported |
| MacOS                          | x86, x64      | XCode 7.2+             | Officially Supported |
| Linux - Others                 | x86, x64      | clang 4+, GCC 5.1+     | Best Effort          |
| Linux                          | ARM           |                        | Best Effort          |
| iOS                            |               |                        | Best Effort          |
| Android                        |               |                        | Best Effort          |
| Asylo                          |               |                        | Best Effort          |
| FreeBSD                        |               |                        | Community Supported  |
| OpenBSD                        |               |                        | Community Supported  |
| AIX                            |               |                        | Community Supported  |
| Solaris                        |               |                        | Community Supported  |
| NaCL                           |               |                        | Community Supported  |
| Fuchsia                        |               |                        | Community Supported  |

## Bazel

Bazel is the primary build system used by the core gRPC development team. Bazel
provides fast builds and it easily handles dependencies that support bazel.

To add gRPC as a dependency in bazel:
1. determine commit SHA for the grpc release you want to use
2. Use the [http_archive](https://docs.bazel.build/versions/master/repo/http.html#http_archive) bazel rule to include gRPC source
  ```
  http_archive(
      name = "com_github_grpc_grpc",
      urls = [
          "https://github.com/grpc/grpc/archive/YOUR_GRPC_COMMIT_SHA.tar.gz",
      ],
      strip_prefix = "grpc-YOUR_GRPC_COMMIT_SHA",
  )
  load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps")
  grpc_deps()<commit_msg>Version changes (#29752)<commit_after># gRPC C++

This directory contains the C++ implementation of gRPC.

# To start using gRPC C++

This section describes how to add gRPC as a dependency to your C++ project.

In the C++ world, there's no universally accepted standard for managing project dependencies.
Therefore, gRPC supports several major build systems, which should satisfy most users.

## Supported Platforms

* Officially Supported: These platforms are officially supported. We test our
  code on these platform and have automated continuous integration tests for
  them.

* Best Effort: We do not have continous integration tests for these, but we are
  fairly confident that gRPC C++ would work on them. We will make our best
  effort to support them, and we welcome patches for such platforms, but we
  might need to declare bankruptcy on some issues.

* Community Supported: These platforms are supported by contributions from the
  open source community, there is no official support for them. Breakages on
  these platforms may go unnoticed, and the community is responsible for all
  maintenance. Unmaintained code for these platforms may be deleted.

| Operating System | Architectures | Versions | Support Level |
|------------------|---------------|----------|---------------|
| Linux - Debian, Ubuntu, CentOS | x86, x64      | clang 6+, GCC 6.3+     | Officially Supported |
| Windows 10+                    | x86, x64      | Visual Studio 2017+    | Officially Supported |
| MacOS                          | x86, x64      | XCode 12+              | Officially Supported |
| Linux - Others                 | x86, x64      | clang 6+, GCC 6.3+     | Best Effort          |
| Linux                          | ARM           |                        | Best Effort          |
| iOS                            |               |                        | Best Effort          |
| Android                        |               |                        | Best Effort          |
| Asylo                          |               |                        | Best Effort          |
| FreeBSD                        |               |                        | Community Supported  |
| OpenBSD                        |               |                        | Community Supported  |
| AIX                            |               |                        | Community Supported  |
| Solaris                        |               |                        | Community Supported  |
| NaCL                           |               |                        | Community Supported  |
| Fuchsia                        |               |                        | Community Supported  |

## Bazel

Bazel is the primary build system used by the core gRPC development team. Bazel
provides fast builds and it easily handles dependencies that support bazel.

To add gRPC as a dependency in bazel:
1. determine commit SHA for the grpc release you want to use
2. Use the [http_archive](https://docs.bazel.build/versions/master/repo/http.html#http_archive) bazel rule to include gRPC source
  ```
  http_archive(
      name = "com_github_grpc_grpc",
      urls = [
          "https://github.com/grpc/grpc/archive/YOUR_GRPC_COMMIT_SHA.tar.gz",
      ],
      strip_prefix = "grpc-YOUR_GRPC_COMMIT_SHA",
  )
  load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps")
  grpc_deps()
{'fraction_non_alphanumeric': 0.08049903460567355, 'fraction_numerical': 0.010248032080796079, 'mean_word_length': 1.5117493472584855, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 48, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1022420', 'n_tokens_mistral': 1725, 'n_tokens_neox': 1610, 'n_words': 625}