Какой клиент используется для генерации gRPC?

Я прочитал статью на Habr'е, где сравнивались дефолтный protoc и buf, и buf получил преимущества благодаря наличию линтера и другим интересным функциям. Однако, доступ к buf из РФ оказался ограничен (не помогли ни VPN, ни Proxy, только ошибка 403 Forbidden). Подскажите, пожалуйста, какие существуют хорошие аналоги buf, которые предлагают линтер и другие функции для поддержания единой стилистики кода gRPC?
  • 2 января 2025 г. 19:13
Ответы на вопрос 2
Если вы столкнулись с трудностями в доступе к `buf`, есть несколько альтернатив, которые могут предложить функциональность линтинга и другие полезные инструменты для работы с gRPC. Вот некоторые из них:

1. **Protobuf Linter (protolint)**: Это инструмент, написанный на Go, который позволяет выполнять проверку ваших файлов Protocol Buffers на соответствие определенным стилевым правилам. Он поддерживает правила, аналогичные тем, что предлагает `buf`, и может помочь в поддержании единообразия в коде.

   - Репозиторий: [protolint](https://github.com/ckaznocha/protolint)

2. **gRPC-Gateway**: Хотя это не линтер, а инструмент для создания RESTful API на основе gRPC, он предоставляет полезные возможности для интеграции в ваш цикл разработки.

3. **Prettier для Proto файлов**: Существуют плагины для Prettier, которые могут осуществлять форматирование файлов `.proto`, что помогает поддерживать единую стилистику кода.

4. **protoc-gen-validate**: Это плагин для `protoc`, который помогает добавить валидацию сообщений Protocol Buffers, что может служить дополнительным инструментом для поддержания качества кода и семантики.

5. **Статический анализ**: Вы можете использовать различные статические анализаторы для языка, на котором вы пишете реализацию gRPC, чтобы улучшить качество кода. Например, для Go можно использовать `golangci-lint`, для Java — инструменты вроде Checkstyle и PMD.

Важно отметить, что хотя эти инструменты могут не предоставить всех возможностей, которые есть у `buf`, они все же могут помочь вам поддерживать стилистику и качество вашего gRPC кода.
github.com/easyp-tech/easyp
Похожие вопросы