Skip to content

baidu/babylon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Oct 17, 2024
77cbd00 · Oct 17, 2024
Oct 17, 2024
May 17, 2024
May 10, 2024
Oct 14, 2024
Oct 17, 2024
Oct 17, 2024
Oct 17, 2024
Oct 17, 2024
Oct 15, 2024
Oct 8, 2024
May 6, 2024
Oct 8, 2024
Oct 17, 2024
Apr 25, 2024
Oct 15, 2024
Oct 14, 2024
Oct 15, 2024
Oct 14, 2024

Repository files navigation

Babylon

CI Coverage Status

Babylon是一个用于支持C++高性能服务端开发的基础库,从内存和并行管理角度提供了大量的基础组件。广泛应用在对性能有严苛要求的场景,典型例如搜索推荐引擎,自动驾驶车载计算等场景

核心功能

  • 高效的应用级内存池机制
  • 组件式并行计算框架
    • 基于无锁DAG推导的高性能自动组件并行框架
    • 依照执行流天然生成数据流管理方案,复杂计算图场景下提供安全的数据竞争管理
    • 微流水线并行机制,提供上限更好的并行化能力
  • 并行开发基础组件
    • wait-free级别的并发安全容器(vector/queue/hash_table/...)
    • 可遍历的线程缓存开发框架
    • 可扩展支持线程/协程的同步原语(future/mutex/...)
  • 应用/框架搭建基础工具
    • IOC组件开发框架
    • C++对象序列化框架
    • 零拷贝/零分配异步日志框架

编译并使用

支持平台和编译器

  • OS: Linux
  • CPU: x86-64/aarch64
  • COMPILER: gcc/clang

Bazel

Babylon使用Bazel进行构建并使用bzlmod进行依赖管理,考虑到目前Bazel生态整体处于bzlmod的转换周期,Babylon也依然兼容workspace依赖管理模式

CMake

Babylon也支持使用CMake进行构建,并支持通过find_packageadd_subdirectoryFetchContent进行依赖引入

模块功能文档

整体设计思路

如何贡献

如果你遇到问题或需要新功能,欢迎创建issue。

如果你可以解决某个issue, 欢迎发送PR。

发送PR前请确认有对应的单测代码。