grpc-communication
High-performance RPC with protocol buffers, streaming, and service mesh integration.
Works with
---
name: grpc-communication
description: High-performance RPC with protocol buffers, streaming, and service mesh integration.
license: Apache-2.0
---
# gRPC Communication
> High-performance RPC with protocol buffers, streaming, and service mesh integration.
## Quick Reference
gRPC framework mastery: protocol buffer definitions, service interfaces, client/server/bidirectional streaming, interceptors, load balancing, and service mesh integration.
## Core Concepts
### Protocol Buffers
Efficient binary serialization format.
```protobuf
syntax = "proto3";
service UserService {
rpc GetUser(UserId) returns (User) {}
rpc ListUsers(Empty) returns (stream User) {}
rpc CreateUser(CreateUserRequest) returns (User) {}
}
message User {
string id = 1;
string name = 2;
string email = 3;
}
```
### Streaming Patterns
gRPC supports four streaming patterns.
```typescript
// Unary
const user = await client.getUser({ id: 'user-123' });
// Server streaming
const stream = client.listUsers({});
stream.on('data', (user) => console.log(user));
// Client streaming
const uploadStream = client.uploadFiles();
uploadStream.write({ data: buffer1 });
uploadStream.write({ data: buffer2 });
const result = await uploadStream.end();
// Bidirectional
const chat = client.chat();
chat.on('data', (msg) => console.log(msg));
chat.write({ text: 'Hello' });
```
### Interceptors
Cross-cutting concerns like logging, authentication, tracing.
```typescript
function authInterceptor(
request: any,
metadata: grpc.Metadata,
next: Function
): void {
const token = getAuthToken();
metadata.add('authorization', `Bearer ${token}`);
next(null, request, metadata);
}
```
## Best Practices
1. **Proto Versioning**: Version APIs in proto definitions
2. **Streaming**: Use streaming for large datasets
3. **Error Handling**: Define clear error codes
4. **Timeouts**: Set appropriate client timeouts
5. **Load Balancing**: Use gRPC load balancing
## Related Skills
- Service Mesh (Istio)
- Distributed Tracing
- Load Balancing Strategies
- API Gateway Patterns
---
**Token Savings**: ~850 tokens | **Last Updated**: 2025-11-08 | **Installs**: 876 | **Remixes**: 267More API Design skills
lark-event
larksuite/cli
Lark/Feishu real-time event listening / subscribing / consuming: stream events as NDJSON via `lark-cli event consume <EventKey>` (covers IM messages/reactions/chat changes, Approval status changes, Task updates, VC meeting started/joined/ended, Minutes generated, Whiteboard updated, etc.). Use for Lark bots, real-time message processing, long-running subscribers, streaming webhook/push handlers. Supports `--max-events` / `--timeout` bounded runs and a stderr ready-marker contract — designed for AI agents running as subprocesses.
lark-contact
larksuite/cli
飞书 / Lark 通讯录:按姓名 / 邮箱解析成 open_id,或按 open_id 反查姓名 / 部门 / 邮箱 / 联系方式 / 个人状态 / 签名,以及按关键词搜索当前用户可见的机器人 / 智能体(agent)。当用户提到一个名字要下一步发消息 / 排日程,或拿到 open_id 想查具体信息时使用。不负责部门树遍历、按部门列员工、组织架构图,这类需求走原生 OpenAPI。
lark-openapi-explorer
larksuite/cli
飞书/Lark 原生 OpenAPI 探索:从官方文档库中挖掘未经 CLI 封装的原生 OpenAPI 接口。当用户的需求无法被现有 lark-* skill 或 lark-cli 已注册命令满足,需要查找并调用原生飞书 OpenAPI 时使用。

