Skip to content

以下是 Supporting Components 各模块的详细说明及参数位置,可用于文档目录结构中:


Data Container

array

bloom

  • 描述:布隆过滤器,用于快速判断一个元素是否可能存在于集合中。
  • 主要函数
    • bfdev_bloom_init():初始化布隆过滤器。
    • bfdev_bloom_add():将元素加入过滤器。
    • bfdev_bloom_check():检查元素是否存在。
  • 头文件<bfdev/bloom.h>
  • 源文件src/bloom.c

btree

  • 描述:B+ 树实现,适用于大规模数据存储和查找。
  • 主要函数
  • 头文件<bfdev/btree.h>
  • 源文件src/btree.c

circle

  • 描述:循环队列,适用于固定大小的先进先出场景。
  • 主要函数
    • bfdev_circle_init():初始化循环队列。
    • bfdev_circle_enqueue():入队操作。
    • bfdev_circle_dequeue():出队操作。
  • 头文件<bfdev/circle.h>
  • 源文件src/circle.c

fifo

  • 描述:无锁 FIFO 队列,适合单读单写线程安全场景。
  • 主要函数
  • 头文件<bfdev/fifo.h>
  • 源文件src/fifo.c

hashmap

  • 描述:哈希表实现,支持动态扩容与重新哈希。
  • 主要函数
    • bfdev_hashmap_init():初始化哈希表。
    • bfdev_hashmap_put():插入键值对。
    • bfdev_hashmap_get():获取键对应的值。
  • 头文件<bfdev/hashmap.h>
  • 源文件src/hashmap.c

hashtbl

  • 描述:哈希表工具函数集合,提供通用哈希计算。
  • 主要函数
  • 头文件<bfdev/hashtbl.h>
  • 源文件src/hashtbl.c

heap

  • 描述:二叉堆,支持最大堆或最小堆。
  • 主要函数
  • 头文件<bfdev/heap.h>
  • 源文件src/heap.c

hlist

  • 描述:哈希链表,基于哈希桶组织的链表结构。
  • 主要函数
    • bfdev_hlist_add():向链表中添加节点。
    • bfdev_hlist_del():从链表中删除节点。
  • 头文件<bfdev/hlist.h>
  • 源文件src/hlist.c

ilist

  • 描述:索引链表,通过索引访问链表节点。
  • 主要函数
  • 头文件<bfdev/ilist.h>
  • 源文件src/ilist.c

list

  • 描述:双向链表,常用基础链表结构。
  • 主要函数
  • 头文件<bfdev/list.h>
  • 源文件src/list.c

llist

radix

  • 描述:基数树,适用于高效 IP 地址查找等场景。
  • 主要函数
    • bfdev_radix_insert():插入键。
    • bfdev_radix_lookup():查找键。
  • 头文件<bfdev/radix.h>
  • 源文件src/radix.c

rbtree

  • 描述:红黑树,自平衡二叉搜索树。
  • 主要函数
    • bfdev_rbtree_insert():插入节点。
    • bfdev_rbtree_delete():删除节点。
  • 头文件<bfdev/rbtree.h>
  • 源文件src/rbtree.c

ringbuf

  • 描述:环形缓冲区,适用于流式数据处理。
  • 主要函数
    • bfdev_ringbuf_init():初始化环形缓冲区。
    • bfdev_ringbuf_write():写入数据。
    • bfdev_ringbuf_read():读取数据。
  • 头文件<bfdev/ringbuf.h>
  • 源文件src/ringbuf.c

segtree

  • 描述:线段树,适用于区间查询与更新。
  • 主要函数
    • bfdev_segtree_init():初始化线段树。
    • bfdev_segtree_query():区间查询。
  • 头文件<bfdev/segtree.h>
  • 源文件src/segtree.c

skiplist

  • 描述:跳表,支持高效的查找、插入和删除。
  • 主要函数
  • 头文件<bfdev/skiplist.h>
  • 源文件src/skiplist.c

slist

  • 描述:单向链表,内存占用小,适用于轻量级场景。
  • 主要函数
  • 头文件<bfdev/slist.h>
  • 源文件src/slist.c

Bit Operation

bitrev

bitwalk

  • 描述:位图迭代器,用于遍历设置位(1)的位置。
  • 主要函数
    • bfdev_bitwalk_first():获取第一个置位索引。
    • bfdev_bitwalk_next():获取下一个置位索引。
  • 头文件<bfdev/bitwalk.h>
  • 源文件src/bitwalk.c

popcount


Architecture

atomic

  • 描述:原子操作接口,保证多线程安全。
  • 主要函数
    • bfdev_atomic_inc():原子递增。
    • bfdev_atomic_dec():原子递减。
    • bfdev_atomic_xchg():原子交换。
  • 头文件<bfdev/atomic.h>
  • 源文件src/atomic.c

byteorder

cmpxchg

  • 描述:比较并交换(CAS),用于无锁编程。
  • 主要函数
    • bfdev_cmpxchg():比较并交换指定内存地址的内容。
  • 头文件<bfdev/cmpxchg.h>
  • 源文件src/cmpxchg.c

swab

  • 描述:字节交换,用于双字节或四字节数据交换。
  • 主要函数
  • 头文件<bfdev/swab.h>
  • 源文件src/swab.c

Memory Allocator

allocator

  • 描述:通用内存分配兼容层,封装多种分配器接口。
  • 主要函数
  • 头文件<bfdev/allocator.h>
  • 源文件src/allocator.c

allocpool

  • 描述:高性能内存池,优化频繁小块内存申请。
  • 主要函数
  • 头文件<bfdev/allocpool.h>
  • 源文件src/allocpool.c

memalloc

  • 描述:内存分配算法实现,如 slab、buddy 等。
  • 主要函数
  • 头文件<bfdev/memalloc.h>
  • 源文件src/memalloc.c

String Process

argv

  • 描述:命令行参数分割工具。
  • 主要函数
    • bfdev_argv_split():按空格分隔字符串为参数数组。
  • 头文件<bfdev/argv.h>
  • 源文件src/argv.c

fsm

  • 描述:有限状态机框架,用于解析复杂输入流。
  • 主要函数
  • 头文件<bfdev/fsm.h>
  • 源文件src/fsm.c

scnprintf

  • 描述:安全格式化输出,防止缓冲区溢出。
  • 主要函数
    • bfdev_scnprintf():格式化写入指定长度缓冲区。
  • 头文件<bfdev/scnprintf.h>
  • 源文件src/scnprintf.c

Mathematics

mpi

log2

  • 描述:计算 log₂ 值,支持动态和常量优化。
  • 主要函数
  • 头文件<bfdev/log2.h>
  • 源文件src/log2.c

Rate limiting

ratelimit

  • 描述:固定窗口计数限速器,控制单位时间请求频率。
  • 主要函数
    • bfdev_ratelimit_check():检查是否超过速率限制。
  • 头文件<bfdev/ratelimit.h>
  • 源文件src/ratelimit.c

tokenbucket

  • 描述:令牌桶限速器,支持突发流量。
  • 主要函数
    • bfdev_tokenbucket_consume():消耗令牌。
  • 头文件<bfdev/tokenbucket.h>
  • 源文件src/tokenbucket.c

Cache

lfu

  • 描述:最少使用缓存淘汰策略。
  • 主要函数
    • bfdev_cache_lfu_create():创建 LFU 缓存。
  • 头文件<bfdev/cache/lfu.h>
  • 源文件src/cache/lfu.c

lru

  • 描述:最近最少使用缓存淘汰策略。
  • 主要函数
    • bfdev_cache_lru_create():创建 LRU 缓存。
  • 头文件<bfdev/cache/lru.h>
  • 源文件src/cache/lru.c

Textsearch

bm

  • 描述:Boyer-Moore 高效字符串搜索算法。
  • 主要函数
    • bfdev_textsearch_bm_prepare():准备 BM 模式表。
    • bfdev_textsearch_bm_search():执行 BM 搜索。
  • 头文件<bfdev/textsearch/bm.h>
  • 源文件src/textsearch/bm.c

kmp

  • 描述:Knuth-Morris-Pratt 字符串匹配算法。
  • 主要函数
    • bfdev_textsearch_kmp_prepare():预处理模式串。
    • bfdev_textsearch_kmp_search():执行 KMP 匹配。
  • 头文件<bfdev/textsearch/kmp.h>
  • 源文件src/textsearch/kmp.c

sunday

  • 描述:Sunday 快速字符串查找算法。
  • 主要函数
    • bfdev_textsearch_sunday_prepare():构建跳转表。
    • bfdev_textsearch_sunday_search():执行 Sunday 查找。
  • 头文件<bfdev/textsearch/sunday.h>
  • 源文件src/textsearch/sunday.c

Miscellaneous

guards

  • 描述:变量自动清理机制,在作用域退出时自动释放资源。
  • 主要函数
    • bfdev_cleanup():注册清理回调。
  • 头文件<bfdev/guards.h>
  • 源文件src/guards.c

notifier

once

  • 描述:确保代码段只执行一次,常用于初始化逻辑。
  • 主要函数
  • 头文件<bfdev/once.h>
  • 源文件src/once.c

Released under the MIT License.