1*cc02d7e2SAndroid Build Coastguard Worker# gRPC Summer of Code Project Ideas 2*cc02d7e2SAndroid Build Coastguard Worker 3*cc02d7e2SAndroid Build Coastguard WorkerHello students! 4*cc02d7e2SAndroid Build Coastguard Worker 5*cc02d7e2SAndroid Build Coastguard WorkerWe want gRPC to be the universal remote procedure call protocol for all 6*cc02d7e2SAndroid Build Coastguard Workercomputing platforms and paradigms, so while these are our ideas of what we 7*cc02d7e2SAndroid Build Coastguard Workerthink would make good projects for the summer, we're eager to hear your ideas 8*cc02d7e2SAndroid Build Coastguard Workerand proposals as well. 9*cc02d7e2SAndroid Build Coastguard Worker[Try us out](https://github.com/grpc/grpc/blob/master/CONTRIBUTING.md) and get 10*cc02d7e2SAndroid Build Coastguard Workerto know the gRPC code and team! 11*cc02d7e2SAndroid Build Coastguard Worker 12*cc02d7e2SAndroid Build Coastguard Worker**Required skills for all projects:** git version control, collaborative 13*cc02d7e2SAndroid Build Coastguard Workersoftware development on github.com, and software development in at least one 14*cc02d7e2SAndroid Build Coastguard Workerof gRPC's ten languages on at least one of Linux, macOS, and Windows. 15*cc02d7e2SAndroid Build Coastguard Worker 16*cc02d7e2SAndroid Build Coastguard Worker------------------------------------- 17*cc02d7e2SAndroid Build Coastguard Worker 18*cc02d7e2SAndroid Build Coastguard WorkergRPC Core: 19*cc02d7e2SAndroid Build Coastguard Worker 20*cc02d7e2SAndroid Build Coastguard Worker1. Implement ["early OK" semantics](https://github.com/grpc/grpc/issues/7032). The gRPC wire protocol allows servers to complete an RPC with OK status without having processed all requests ever sent to the client; it's the gRPC Core that currently restricts applications from so behaving. This behavioral gap in the gRPC Core should be filled in. 21*cc02d7e2SAndroid Build Coastguard Worker * **Required skills:** C programming language, C++ programming language. 22*cc02d7e2SAndroid Build Coastguard Worker * **Likely mentors:** [Nathaniel Manista](https://github.com/nathanielmanistaatgoogle), [Nicolas Noble](https://github.com/nicolasnoble). 23*cc02d7e2SAndroid Build Coastguard Worker 24*cc02d7e2SAndroid Build Coastguard Worker1. [Make channel-connectivity-watching cancellable](https://github.com/grpc/grpc/issues/3064). Anything worth waiting for is worth cancelling. The fact that channel connectivity is currently poll-based means that clean shutdown of gRPC channels can take as long as the poll interval. No one should have to wait two hundred milliseconds to garbage-collect an object. 25*cc02d7e2SAndroid Build Coastguard Worker * **Required skills:** C programming language, C++ programming language, Python programming language. 26*cc02d7e2SAndroid Build Coastguard Worker * **Likely mentors:** [Nathaniel Manista](https://github.com/nathanielmanistaatgoogle), [Vijay Pai](https://github.com/vjpai). 27*cc02d7e2SAndroid Build Coastguard Worker 28*cc02d7e2SAndroid Build Coastguard WorkergRPC Python: 29*cc02d7e2SAndroid Build Coastguard Worker 30*cc02d7e2SAndroid Build Coastguard Worker1. Support static type-checking of both gRPC Python itself and of code that uses gRPC Python. No one likes dynamic typing and Python is finally outgrowing it! There are probably errors in the implementation of gRPC Python that [pytype](https://github.com/google/pytype) or [mypy](http://mypy-lang.org/) could detect. There are certainly errors in other code that uses gRPC Python that they could detect. 31*cc02d7e2SAndroid Build Coastguard Worker * **Required skills:** Python programming language, open source development across multiple repositories and projects. 32*cc02d7e2SAndroid Build Coastguard Worker * **Likely mentors:** [Nathaniel Manista](https://github.com/nathanielmanistaatgoogle), [Kailash Sethuraman](https://github.com/hsaliak). 33*cc02d7e2SAndroid Build Coastguard Worker 34*cc02d7e2SAndroid Build Coastguard Worker1. [Enable building of gRPC Python with Bazel](https://github.com/grpc/grpc/issues/8079). Bazel is the designated replacement for our constellation of crufty build scripts, but it's still under active development itself. Up for a challenge? gRPC Python could easily be the most complex codebase to be built with Bazel. 35*cc02d7e2SAndroid Build Coastguard Worker * **Required skills:** Python programming language, Bazel toolchain, Cython, open source development across multiple repositories and projects. 36*cc02d7e2SAndroid Build Coastguard Worker * **Likely mentors:** [Nathaniel Manista](https://github.com/nathanielmanistaatgoogle). 37