Commit Graph

713 Commits

Author SHA1 Message Date
Richard Belleville 805afe647d Copyright typo 2019-07-08 11:42:21 -07:00
Richard Belleville 79e78d16f7 Pylint 2019-07-08 11:09:44 -07:00
Richard Belleville ba39c9255c Adopt reviewer's comments 2019-07-08 10:00:36 -07:00
Richard Belleville 61c2f0c379 Merge remote-tracking branch 'origin/master' into cancellation_example 2019-07-03 18:08:10 -07:00
Jan Tattermusch df998f7023
Merge pull request #19467 from chwarr/cmake-min-3.1.3
Bump min CMake to 3.5.1 to match Google benchmark
2019-07-03 15:04:44 +02:00
Christopher Warrington 4be4df3624 Bump min CMake to 3.5.1 to match Google benchmark
The Google Benchmark CMake build needs CMake 3.5.1 or newer. CMake 3.5.1
was released May 24, 2016 and is available in Debian stable and Ubuntu
16.04 and 18.04.
2019-07-02 23:02:47 +00:00
Richard Belleville 915e97b115 Fix main thread starvation issues 2019-06-26 13:16:02 -07:00
Richard Belleville 1db141accc Change section title 2019-06-26 09:51:44 -07:00
Lidi Zheng ce41cde908 Fix string/bytes problem && lint 2019-06-26 09:46:05 -07:00
Richard Belleville 25f3439c91 Make whole package testonly 2019-06-26 09:45:47 -07:00
Richard Belleville 7486026eb9 Annotate the proto file 2019-06-26 09:42:55 -07:00
Richard Belleville 4100084c78 Use six for compatibility in client 2019-06-26 09:37:33 -07:00
Richard Belleville 7fa7f932e3 Pull search algorithm out into another module 2019-06-26 09:32:58 -07:00
Richard Belleville 42b2fe154a Simplify search implementation 2019-06-26 09:21:29 -07:00
Richard Belleville 2bf4d502c1 Factor out simpler generator 2019-06-26 09:06:07 -07:00
Richard Belleville fed1c629e0 Make compatible with Python 3 2019-06-25 16:07:49 -07:00
Richard Belleville 81f42031c6 Pylint 2019-06-25 15:58:06 -07:00
Richard Belleville edbddf25ab Typos 2019-06-25 15:49:31 -07:00
Richard Belleville 786a3acab0 Add test 2019-06-25 14:20:07 -07:00
Richard Belleville 93d6344ac6 Add todo 2019-06-25 13:25:54 -07:00
Richard Belleville dc8dba8afe Add docstrings 2019-06-25 13:19:02 -07:00
Richard Belleville 8f1bfdab55 Yapf 2019-06-25 13:01:22 -07:00
Richard Belleville b12299701d Clean up logging 2019-06-25 13:00:09 -07:00
Richard Belleville 4c852bf25f Cancel RPCs after a hash limit has been reached 2019-06-25 12:50:10 -07:00
Richard Belleville b9cc2c210f Explain how we take care of servicer threads 2019-06-25 11:15:43 -07:00
Richard Belleville cdae8ca6ad Add intro about algorithm 2019-06-25 11:11:03 -07:00
Richard Belleville 82aa4068c7 Elaborate on cancelling streaming RPCs 2019-06-25 11:02:10 -07:00
Richard Belleville 4ee154dd53 Elaborate on unary cancellation 2019-06-25 10:50:04 -07:00
Richard Belleville c9e83db6bc Implement streaming on the client side 2019-06-25 10:34:48 -07:00
Lidi Zheng 7b82924066 Update module import according to name changes 2019-06-25 10:20:25 -07:00
Richard Belleville b6a5e94f71 Respond to ctrl+c on client side 2019-06-25 09:36:49 -07:00
Richard Belleville 244279cb36 Add client CLI 2019-06-25 09:07:46 -07:00
Lidi Zheng aa567e5364 Adopt reviewer's advices 2019-06-24 17:58:11 -07:00
Lidi Zheng 5f98b1e8ef Fix 2/3 str/bytes compatibility issue 2019-06-24 17:13:42 -07:00
Richard Belleville b31431aea3 Switch over to a generator 2019-06-24 16:49:35 -07:00
Lidi Zheng 12c296b3dc [Python] Add authentication extension example 2019-06-24 16:39:51 -07:00
Richard Belleville 7dccc07c2a Start writing README 2019-06-24 16:02:34 -07:00
Richard Belleville 335e655a78 Free up server thread upon cancellation 2019-06-24 15:51:16 -07:00
Richard Belleville 32944fdeb2 Lay out bones of example 2019-06-24 13:56:56 -07:00
Richard Belleville 00ad30c804
Merge pull request #19421 from gnossen/python_compression_example
Python Compression Example
2019-06-21 15:23:07 -07:00
Richard Belleville 8fb51946bf Fix multiprocessing example for MacOS.
A closer reading of the API for getsockopt revealed that we were
depending on an implementation detail of getsockopt on Linux. This
assumption breaks down on MacOS.

getsockopt merely guarantees that it will return on 0 in case of failure
and a value greater than 0 in case of success. There is no guarantee as
to *which* non-zero value you will receive. On Linux, it seems to be 1,
the value which was explicitly set. On MacOS, it seems to be the value
of the FLAG which was set, i.e. 512 for SO_REUSEPORT.

This commit ensures the check we use does not rely on either of these
implementation details.
2019-06-21 14:01:27 -07:00
Richard Belleville 624839b704 Add example Python server using compression. 2019-06-21 13:59:01 -07:00
Nicolas Noble 21c4e7d9f2
Merge pull request #19258 from nicolasnoble/bazel-0.26
Upgrading to bazel 0.26
2019-06-21 09:36:20 -07:00
Jan Tattermusch 4d33b5c955
Merge pull request #19182 from haon4/201905291635
Update protobuf version to 3.8.0
2019-06-18 17:36:27 +02:00
Nicolas "Pixel" Noble 929f151016 Cherry-picking #19349 in. 2019-06-17 22:42:08 +02:00
Lidi Zheng 9bd526260a Remove unused imports 2019-06-14 16:49:53 -07:00
Lidi Zheng 550dae1c47 Workaround the address contention issue 2019-06-14 10:41:35 -07:00
Nicolas "Pixel" Noble 0472933d71 Trying to fix build. 2019-06-14 07:35:33 +02:00
Lidi Zheng 559023c01d Adopt reviewer's advice 2019-06-13 10:45:46 -07:00
Hao Nguyen 7f787bd083 Link against pthread in examples 2019-06-11 12:12:33 -07:00
Lidi Zheng f7cb9c9f3e Add Debug Example 2019-06-10 15:29:03 -07:00
vam db7fd70166 Fix examples (forgot to rename usages of the renamed target) 2019-05-06 10:44:34 -07:00
vam f4affeec66 Merge remote-tracking branch 'upstream/master' 2019-05-03 16:49:50 -07:00
vam 4269ce08f4 Make cc_grpc_library compatible with native proto_library and cc_proto_library rules.
This is needed to comply with bazel best practices (each proto file is first processed by proto_library: https://docs.bazel.build/versions/master/be/protocol-buffer.html#proto_library) and generally bring cc_grcp_library rule up to date with latest Bazel changes (the rule hasn't gotten much updates since 2016).

Detailed description.

Bazel has native `cc_proto_library` rule, but it does not have `cc_grpc_library`. The rule in cc_grpc_library in this repo seems like the best candidate.

This change makes possible using `cc_grpc_library` to generate on grpc library, and consume protobuf protion as dependencies. The typical `BUILD.bazel` file configuraiton now should look like the following:

```python
proto_library(
   name = "my_proto",
   srcs = ["my.proto"],
 )

cc_proto_library(
   name = "my_cc_proto",
   deps = [":my_proto"]
)

cc_grpc_library(
    name = "my_cc_grpc",
    srcs = [":my_proto"],
    deps = [":my_cc_proto"]
)
```

This allows to decouple all thre phases: proto descriptors generation (`proto_library`), protobuf messages library creation (`cc_proto_library`), grpc library creatio (`cc_grpc_library`).

Notice how `cc_grpc_library` depends on `proto_library` (as `src`) and on `cc_proto_library` (as `deps`). Currently cc_grpc_library is designed in a way that it encapsulates all of the above and directly accepts .proto files as srcs.

The previous version (before this PR) of cc_proto_library was encapsulating all of the 3 phases inside single `cc_proto_library` and also was doing it manually (without relying on the native `cc_proto_library`).

The `cc_proto_library` is kept backward-compatible with the old version.
2019-05-03 16:43:54 -07:00
Richard Belleville 930cec4e27 Revert "Merge pull request #18912 from grpc/revert-bazel-changes"
This reverts commit c9a259aa3a, reversing
changes made to 9c882bc725.
2019-04-30 11:17:11 -07:00
Richard Belleville 50b5240d0a Revert "Merge pull request #18859 from grpc/internal_py_proto_library"
This reverts commit 5b720f19c1, reversing
changes made to a64ae3c0d5.
2019-04-29 17:47:56 -07:00
Richard Belleville 5391d8427e Moar ipv6 2019-04-25 13:53:23 -07:00
Richard Belleville aec0860ebf Remove redundant line 2019-04-25 12:56:46 -07:00
Richard Belleville 1c65fd19e8 Fix wait_for_ready example for ipv4-only environments like Kokoro 2019-04-25 12:55:58 -07:00
Richard Belleville 4de4a7da7b Reenable python bazel tests 2019-04-25 10:27:01 -07:00
Richard Belleville afdc59712d Merge branch 'master' into internal_py_proto_library 2019-04-25 10:01:41 -07:00
Richard Belleville 05f37c8143 Remove dependency on pubref/rules_proto.
This commit resolves #18331.
This commit resolves #18256.
This commit resolves... another TODO that apparently didn't have an
associated github issue.

We swap out pubref's implementation of py_proto_library with our own,
which more closely mirrors the interface of the internal
py_proto_library, taking the descriptor file output of a proto_library
rule as input.

One minor change in behavior was introduced for simplicity. When a
py_proto_library depends on a proto_library with a source proto file in
a subdirectory of the bazel package, the import module of the resultant
python library will reflect the package, *not* the full directory of the
proto file, including both the bazel package and the subdirectories, as
pubref did previously. This behavior also more closely mirrors google
internal behavior.

This commit also introduces a slightly more stringent bazel format
script. Buildifier on its own will not take care of long lines, but by
running yapf first, we end up with a more legible file. At the moment,
there is no sanity check associated with this formatter.
2019-04-24 17:36:08 -07:00
Muxi Yan 0eec19a3bc
Merge pull request #18766 from muxi/examples-v2api
Updated all ObjC examples to use the new api
2019-04-23 08:45:01 -07:00
Muxi Yan f5262fe259 Update objc examples to use v2 API 2019-04-19 14:22:00 -07:00
Lidi Zheng f062722c61 Adopt reviewer's advice
* Use context manager to manage tcp socket
* Rename tcp socket
* Fix grammer error
2019-04-16 13:44:46 -07:00
Lidi Zheng 541cb00470 Add wait-for-ready example
* With unit test
* With Bazel integration
* With REAME.md explaination
2019-04-16 12:24:23 -07:00
SataQiu c99ac03b11 fix some spell errors 2019-04-10 15:45:54 +08:00
Juanli Shen 68a2277121
Merge pull request #18460 from AspirinSJL/fix_route_guide
Fix route guide example
2019-04-03 14:34:13 -07:00
rmstar 82040c8d77
Merge pull request #17727 from rmstar/examples_bazel
Added bazel build targets for cpp examples
2019-03-28 22:11:19 -07:00
Prashant Jaikumar 4f2d8a0014 Fix bazel build for examples
Fixed the bazel build for some code in the examples directory.
2019-03-28 18:59:14 -07:00
Lidi Zheng 7bb9e33d1a Add one more import path for py_test 2019-03-27 17:27:47 -07:00
Lidi Zheng 93bab217be Fix the import order to make hack work 2019-03-27 16:37:37 -07:00
Lidi Zheng 85bcce2e08 Fix typo in BUILD.bazel 2019-03-27 12:19:36 -07:00
Lidi Zheng b3d907dce9 Explicitly depend on :grpcio 2019-03-25 14:41:39 -07:00
Lidi Zheng d7429dbb4a Fix the proto rules conflict 2019-03-25 14:18:35 -07:00
Lidi Zheng 7771290fcd Pin the proto definitions to a specific commit 2019-03-25 12:38:20 -07:00
Lidi Zheng f527cfbbac Adopt review's advice
* Add a unit test
* Integrate with Bazel
* Polish README.md
2019-03-25 12:24:11 -07:00
Lidi Zheng 30cc99d42c Add Python example for error handling 2019-03-25 10:43:10 -07:00
Juanli Shen 3f3f177222 Fix route guide example 2019-03-20 16:15:37 -07:00
Benjamin Krämer 6e2ad131fc
Update README.md
Fixed misleading information about supported VS version
2019-03-19 14:45:04 +01:00
Moses Koledoye 84cb531b72
Fix typo 2019-03-15 22:23:52 +00:00
Richard Belleville dde238cb5d Apparently no ipv6 on kokoro 2019-03-12 10:44:05 -07:00
Richard Belleville f3b57e35ec Properly import protos 2019-03-12 10:15:19 -07:00
Richard Belleville b9659d58da Actually generate proto 2019-03-12 09:16:30 -07:00
Richard Belleville 2a50960b4c Add copyright to BUILD file 2019-03-12 08:37:07 -07:00
Richard Belleville 2640822c2d Remove a statement proven wrong by science 2019-03-08 17:24:59 -08:00
Richard Belleville 4c8c8e36d2 Show some respect 2019-03-08 16:52:33 -08:00
Richard Belleville 69b5476429 Expand the readme 2019-03-08 16:38:58 -08:00
Richard Belleville d359dbe44d Remove unnecessary flush 2019-03-08 16:21:49 -08:00
Richard Belleville 81c3b0bfb6 Fix lint errors 2019-03-08 16:18:57 -08:00
Richard Belleville d832738c08 Yapf 2019-03-08 15:16:12 -08:00
Richard Belleville 67ca10b4f9 Add README 2019-03-08 15:06:02 -08:00
Richard Belleville 0f6293e85e Improve logging handlers 2019-03-08 13:50:17 -08:00
Richard Belleville acbc095ab8 Implement test for example 2019-03-08 13:40:44 -08:00
Richard Belleville 5c4823c17b Build with bazel 2019-03-07 16:34:48 -08:00
Richard Belleville 0c8418c4bf WIP. Start BUILD file 2019-03-05 15:08:23 -08:00
Richard Belleville 510beaaede Add a CLI parser to the client 2019-03-01 17:41:56 -08:00
Richard Belleville a6c33d3516 Dynamically allocate port 2019-03-01 17:35:35 -08:00
Richard Belleville f2c7ffc9fb Add multiprocessed client 2019-03-01 13:27:16 -08:00
Richard Belleville 4a8a2e286e Add basic multiprocessing-based server 2019-03-01 11:14:40 -08:00