Developer (s) | |
---|---|
Первый выпуск | август 2016 г.; 4 года назад (2016-08) |
Стабильный выпуск | 1.29.1 |
Репозиторий | |
Написано на | Android Java, C #, C ++, Dart, Go, Java, Kotlin / JVM, Node.js, Objective-C, PHP, Python, Ruby |
Тип | Удаленный вызов процедуры framework |
Лицензия | Apache License 2.0 |
Веб-сайт | grpc.io |
gRPC (gRPC Вызов удаленных процедур ) - это Система с открытым исходным кодом удаленного вызова процедур (RPC), первоначально разработанная в Google в 2015 году. Она использует HTTP / 2 для транспорта, буферы протокола в качестве языка описания интерфейса и предоставляет такие функции, как аутентификация, двунаправленная потоковая передача и управление потоком, блокирующие или неблокирующие привязки, а также отмена и таймауты. Он генерирует кроссплатформенные привязки клиента и сервера для многих языков. Наиболее распространенные сценарии использования включают подключение служб в архитектуре в стиле микросервисов и подключение мобильных устройств, клиентов браузера к серверным службам.
Комплексное использование HTTP / 2 gRPC делает невозможным реализацию клиента gRPC в браузер, вместо этого требуется прокси.
gRPC поддерживает использование TLS и аутентификацию на основе токенов. Подключение к сервисам Google должно использовать TLS. Существует два типа учетных данных: учетные данные канала и учетные данные для вызова.
gRPC использует буферы протокола для кодирования данных. В отличие от HTTP API с JSON, они имеют более строгую спецификацию. Благодаря единой спецификации gRPC исключает споры и экономит время разработчиков, поскольку gRPC согласован для разных платформ и реализаций.
Ряд различных организаций приняли gRPC, например Square, Netflix, IBM, CoreOS, Docker, CockroachDB, Cisco, Juniper Networks и Spotify.
В проекте с открытым исходным кодом u-bmc используется gRPC вместо IPMI. 8 января 2019 г. Dropbox объявил, что следующая версия «Courier», их RPC-фреймворка, лежащего в основе их архитектуры SOA, будет переведена на gRPC, в первую очередь потому, что она хорошо согласована с существующими пользовательские структуры RPC.