Repolode
fullstorydev

fullstorydev/grpcurl

CLI-инструмент для вызова gRPC-серверов: принимает JSON, как curl, и находит схемы через server reflection или proto-файлы.

Open source альтернатива:Postman

Звёзды
12,861
Форки
589
Открытые issues
121
Последний коммит
9 дней назад

Что это?

grpcurl позволяет вызывать RPC-методы gRPC-серверов из командной строки. Поскольку gRPC передаёт по сети бинарные Protocol Buffers, обычный curl не может взаимодействовать с такими серверами. grpcurl принимает тела запросов в формате JSON, преобразует их в protobuf и выводит ответы в удобочитаемом виде.

Инструмент получает схемы сервисов тремя способами: запрашивает сервер, поддерживающий gRPC server reflection, читает исходные .proto-файлы или загружает скомпилированные protoset-файлы. grpcurl поддерживает унарные и потоковые методы, в том числе двунаправленные потоки, которыми можно управлять интерактивно из терминала. Он работает с серверами, использующими TLS или обычное текстовое соединение, включая mutual TLS с клиентскими сертификатами.

Помимо CLI, в репозитории есть библиотечный пакет для Go с вспомогательными средствами, которые позволяют создавать другие инструменты для динамического вызова gRPC-эндпоинтов.

Ключевые возможности

  • 01Отправляет тела запросов в формате JSON и автоматически преобразует их в protobuf.
  • 02Поддерживает унарные методы, потоковую передачу от сервера, потоковую передачу от клиента и двунаправленную потоковую передачу.
  • 03Находит схемы через server reflection, .proto-файлы или protoset-файлы.
  • 04Поддерживает соединения без шифрования, TLS и mutual TLS.
  • 05Выводит список сервисов и описания символов, а также позволяет экспортировать proto- и protoset-файлы.

Сценарии использования

  • Отладка gRPC-сервиса с помощью тестовых запросов из терминала.
  • Вызов gRPC-методов в shell-пайплайнах, например с генерацией тел запросов через jq.
  • Изучение незнакомого gRPC API: просмотр списка его сервисов и методов.
  • Создание внутренних инструментов для динамического вызова gRPC-эндпоинтов через библиотеку для Go.

Быстрый старт

  1. 1

    Установите grpcurl на macOS с помощью Homebrew

    brew install grpcurl
  2. 2

    Или установите из исходного кода с помощью цепочки инструментов Go

    go install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest
  3. 3

    Выведите список сервисов на сервере с поддержкой reflection

    grpcurl localhost:8787 list

Что важно знать

  • Для вызова необходим сервер gRPC; чтобы понять схему, нужны server reflection, файлы proto или protoset.

Темы

Частые вопросы

Что такое grpcurl?
CLI-инструмент для вызова gRPC-серверов: принимает JSON, как curl, и находит схемы через server reflection или proto-файлы. grpcurl позволяет вызывать RPC-методы gRPC-серверов из командной строки. Поскольку gRPC передаёт по сети бинарные Protocol Buffers, обычный curl не может взаимодействовать с такими серверами. grpcurl принимает тела запросов в формате JSON, преобразует их в protobuf и выводит ответы в удобочитаемом виде.
grpcurl можно использовать бесплатно? Какая у него лицензия?
grpcurl распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
grpcurl всё ещё поддерживается?
Активно поддерживается. Последний коммит в grpcurl — 13 окт. 2026 г..
Для чего можно использовать grpcurl?
Отладка gRPC-сервиса с помощью тестовых запросов из терминала. Вызов gRPC-методов в shell-пайплайнах, например с генерацией тел запросов через jq. Изучение незнакомого gRPC API: просмотр списка его сервисов и методов. Создание внутренних инструментов для динамического вызова gRPC-эндпоинтов через библиотеку для Go.
Как установить grpcurl?
Установите grpcurl на macOS с помощью Homebrew: brew install grpcurl Или установите из исходного кода с помощью цепочки инструментов Go: go install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest Выведите список сервисов на сервере с поддержкой reflection: grpcurl localhost:8787 list
Где скачать grpcurl?
Исходный код и инструкции по установке — на GitHub: https://github.com/fullstorydev/grpcurl

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты