#grpc #validation #email-validation #grpc-api #grpc-client

bin+lib check-if-email-exists-grpc

A GRPC 封装版本的 check-if-email-exists

5 个版本 (1 个稳定版本)

1.0.0 2022年10月2日
0.9.1 2022年1月12日
0.9.0 2021年10月29日
0.8.1 2021年9月15日
0.8.0 2021年9月15日

#226 in 电子邮件

AGPL-3.0

35KB
580

检查电子邮件是否存在 GRPC

此 crate 是围绕 check-if-email-exists 的 HTTP 版本的封装。它暴露了 Grpc API 而不是 Rest。

如果您正在寻找电子邮件验证的 SaaS 解决方案,请检查原始创建者创建的 Reacher

为什么要使用这个版本?

  • 为了享受 Grpc 性能相对于 Http 在微服务架构中的优势
  • 通过使用 Redis 缓存来进一步提高性能。如果在短时间内对同一电子邮件进行多次验证,这将是很有用的
  • 您需要在您的管道中对电子邮件验证进行可观察性和审计跟踪。此 crate 使用跟踪来实现这一点

如何运行

Docker 容器

这里有一个 docker 镜像 链接。它支持与可执行文件相同的环境变量。

如果您使用 Docker 作为容器运行时,则可能希望使用 --init 选项将信号传递给进程。

Kubernetes

查看此存储库中的 helm 图表

可执行文件

为此,您需要使用 cargo build 构建应用程序

如何连接客户端

使用自动生成的 grpc 客户端(无需 Rust!)

proto 文件已发布在 Buf 模式注册表 中。然后您可以使用 Buf 在您选择的语言中生成代码。只需按照 文档 操作即可

Rust

此 crate 在模块 proto::v0::service_client 中导出一个 grpc 客户端

如何配置

有多个环境变量

BIND_ADDRESS 描述 默认值
REDIS_HOST Redis IP 127.0.0.1
REDIS_PORT Redis 端口 6379
REDIS_DB 连接到的 Redis 数据库 0
REDIS_USERNAME Redis 用户名 ""
REDIS_PASSWORD Redis 密码 ""
CACHE_EXP_SECONDS 每个验证输出在 Redis 中存储多长时间(以秒为单位) 86400
RUST_LOG 日志级别 check_if_email_exists_grpc=info

许可证

本项目根据check-if-email-exists的许可要求,采用AGPL-3.0,或 Affero通用公共许可证,版本3发布。

依赖项

~23–42MB
~631K SLoC