Repolode
msgspec

msgspec/msgspec

一个快速的 Python 序列化与校验库,基于类型注解编解码 JSON、MessagePack、YAML 和 TOML。

可替代:Pydantic

Star
4,175
Fork
216
未关闭 Issue
234
最近提交
7小时前

这是什么?

msgspec 是一个用于序列化和校验结构化数据的 Python 库。你可以用标准类型注解定义消息结构,然后将对象编码为 JSON、MessagePack、YAML 或 TOML,或将消息解码回 Python 对象。解码时会按声明的类型校验数据,出错时抛出 ValidationError 并指出具体位置。

库的核心是 Struct 类型,这是一种基于类的结构化数据容器,可用来替代 dataclasses 或 attrs。它支持多种常见 Python 类型,也可以通过扩展机制支持更多类型。项目的基准测试显示其性能明显更快。

msgspec 没有必需的第三方依赖,既可以单独作为更快的 JSON 或 MessagePack 编解码库使用,也可以作为序列化与校验一体化的方案。

核心功能

  • 01支持 JSON、MessagePack、YAML 和 TOML 的编码与解码。
  • 02使用标准 Python 类型注解对解码后的数据进行校验。
  • 03提供 Struct 类型,可作为 dataclasses 或 attrs 的替代方案。
  • 04支持多种 Python 类型,并可通过扩展支持自定义类型。
  • 05没有必需的第三方依赖。

适用场景

  • 在 Python 服务中解析并校验 JSON API 的请求或响应数据。
  • 在对性能敏感的数据处理流程中替代 dataclasses 或 attrs 模型。
  • 使用带类型约束的模式读写 YAML 或 TOML 配置文件。
  • 在 Python 组件之间传输紧凑的 MessagePack 消息。

标签

常见问题

msgspec 是什么?
一个快速的 Python 序列化与校验库,基于类型注解编解码 JSON、MessagePack、YAML 和 TOML。 msgspec 是一个用于序列化和校验结构化数据的 Python 库。你可以用标准类型注解定义消息结构,然后将对象编码为 JSON、MessagePack、YAML 或 TOML,或将消息解码回 Python 对象。解码时会按声明的类型校验数据,出错时抛出 ValidationError 并指出具体位置。
msgspec 可以免费使用吗?用的什么许可证?
msgspec 以 BSD-3-Clause 许可证开源。用于商业产品前,请先确认许可证条款。
msgspec 还在维护吗?
活跃维护中。msgspec 最近一次提交是在 2026年10月19日。
msgspec 适合用来做什么?
在 Python 服务中解析并校验 JSON API 的请求或响应数据。 在对性能敏感的数据处理流程中替代 dataclasses 或 attrs 模型。 使用带类型约束的模式读写 YAML 或 TOML 配置文件。 在 Python 组件之间传输紧凑的 MessagePack 消息。
在哪里获取 msgspec?
源代码和安装说明在 GitHub 上:https://github.com/msgspec/msgspec

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目