[C++20] Module partitions和符号交叉引用(声明和实现分离)
C++20 开始支持 Module 了。在以前C++为了解决循环依赖问题,经常会把类或者函数声明写前面,实现写后面。然后中间的代码就可以实现内部模块的内聚而互相引用
[Rust] 实现一个线程安全且迭代器可以保存的链表
背景 今年有个想法,重新设计 libatbus 然后用 Rust 实现出来,然后可以加入一些云原生的支持。这需要一个定时器模块,我看了下 Rust 现有的几种定时器的实现,大多是基
基于protobuf的代码生成
前言 前段时间我用 Python 和 Mako 模板引擎重新梳理了我们项目中的一些重复的流程。重构了所有的RPC系统。这个工作其实完成了挺久了,但是迫于懒一直拖着没写
几个使用protobuf中C++接口的Arena的坑
前言 protobuf 从3.0版本开始对C++增加了Arena接口,可以用于使用连续的内存块分配内部对象,并且可以更容易精确地控制对象地生命周期,最终达到减
Amazon Aurora DB存储引擎论文阅读小记
前言 前段时间接触到腾讯云的一个新数据库产品 CynosDB 是基于 Amazon Aurora 数据库的Paper实现的。我比较感兴趣就来看看它和之前看过的 Spanner 之类有什么不同,也许部分
近期对libatapp的一些优化调整(增加服务发现和连接管理,支持yaml等)
最近给 libatapp 增加了一系列改造,非常多且琐碎,这里简单记录下吧。 首先是重构了配置管理。原来是手写在代码里的,因为原来上层的 libatbus 是不依赖 protobuf 的,现在 既然
xresloader转表工具链增加了一些新功能(map,oneof支持,输出矩阵,基于模板引擎的加载代码生成等)
xresloader 是一组用于把Excel数据结构化并导出为程序可读的数据文件的导表工具集。它包含了一系列跨平台的工具、协议描述和数据读取代码。支持把Exce
libcopp接入C++20 Coroutine和一些过渡期的设计
前言 最近GCC 10.1.0 发布,三大编译器(MSVC、GCC、Clang)都已经支持了C++20协程,之前给 libcopp 接入 C++20协程 的计划也就提上了日程。
nftables初体验
前言 之前耳闻 nftables 是下一代 iptables 。前段时间配了一台主机,折腾成家里的软路由。就一并来尝鲜一系列新东西,其中就包括 nftables 。nftables 和 iptables 、ebtab
PALM Tree - 适合多核并发架构的B+树 - 论文阅读小记
介绍 年初的时候再知乎上看到有人分享 PALM树 树的文章,看简介是专为多核并发而设计的树形结构。比较好奇所以抽时间来看了看它的设计原理和是如合做
跨平台协程库 - libcopp 简介
前段时间有同事联系我想看看可能推广我之前写的协程库 libcopp,虽然 libcopp 已经用到过好几个项目上,这几年也断断续续地写了一些实现细节的文章,但
C++20 Coroutine 性能测试 (附带和libcopp/libco/libgo/goroutine/linux ucontext对比)
前言 之前写了 《协程框架(libcopp)v2优化、自适应栈池和同类库的Benchmark对比》 和 《C++20 Coroutine》 ,但是一直没
尝鲜Github Action
前言 Github Action 上线有一阵子了,大概两周前我的所有账号也是都陆陆续续开发了beta测试的权限。然后就来研究了下这个新的 CI 系统是怎么回事。看介绍,和之
protobuf、flatbuffer、msgpack 针对小数据包的简单对比
前言 前段时间我尝试给 atframework 的 libatapp 整合进UnrealEngine做Dedicated Server和逻辑server通信的时候碰到了一些问题。主要在于
协程框架(libcopp) 小幅优化
最近抽空继续对 libcopp 进行了更新和小幅优化。 首先的Merge了 boost.context 1.70.0 。这次boost.context的更新似乎和它写进 CHANGELOG 里的并不完全一致,匹配的只看