2 个稳定版本

1.0.1 2022年11月7日

#193 in #grpc

MIT 许可证

55KB
556 代码行

CodeCTRL Rust 日志记录器

基于 Rust 的日志记录器,用于与 CodeCTRL 集成。

这个项目的目的是什么?

这个日志记录器和 CodeCTRL 的总体目的是更好地理解控制流、数据,并在基于 Rust 的项目中找到潜在的 UB。

我们在 Authentura 使用 CodeCTRL 及其语言日志记录器来帮助我们进行代码分析服务:包括 Rust。

它是如何工作的?

此日志记录器(以及官方日志记录器中的其余部分)连接到 CodeCTRL 兼容的 gRPC 服务器,并在代码中的指定点发送用户创建的日志。然后,CodeCTRL 前端可以连接到这些相同的 gRPC 服务器,并接收发送到该服务器的日志副本。

此 Rust 实现使用名为 tonic 的 crate 连接到 gRPC 服务器,这是一个方便的 crate,可以生成到 gRPC 服务器的通用接口,并连接到这些 gRPC 服务器。

示例

以下是如何使用此 crate 的快速示例

use codectrl::{Logger, LoggerError};
use tokio::runtime::Handle;

fn main() -> anyhow::Result<()> {
  fn inner() -> Result<(), LoggerError> {
    Logger::log("Hello, world!", None, None, None, None)
  }

  inner()?;

  Ok(())
}

这将产生以下输出,在 CodeCTRL 的详细信息面板中

example.png

依赖项

~8–19MB
~247K SLoC