GitPedia

Libfastcommon

c common functions library extracted from my open source project FastDFS. this library is very simple and stable. functions including: string, logger, chain, hash, socket, ini file reader, base64 encode / decode, url encode / decode, fast timer, skiplist, object pool etc. detail info please see the c header files.

From happyfish100·Updated June 26, 2026·View on GitHub·

libfastcommon may be copied only under the terms of the Less GNU General Public License(LGPL). Please visit the libfastcommon Home Page for more detail. English language: https://github.com/happyfish100/libfastcommon Chinese language: http://www.fastken.com/ The project is written primarily in C, distributed under the GNU Lesser General Public License v3.0 license, first published in 2014. Key topics include: avl-tree, c-library, connection-pool, fastdfs, id-generator.

Copyright (C) 2010 Happy Fish / YuQing

libfastcommon may be copied only under the terms of the Less GNU General
Public License(LGPL).
Please visit the libfastcommon Home Page for more detail.
English language: https://github.com/happyfish100/libfastcommon
Chinese language: http://www.fastken.com/

c common functions library extracted from my open source projects FastDFS and
FastDHT. this library is very simple and stable.

some functions are wrappered into php extension, such as fastcommon_gethostaddrs,
fastcommon_id_generator_xxx, fastcommon_get_ifconfigs, fastcommon_get_sysinfo etc.

C function including:
logger: [logger.h] asynchronously sync to disk for high performance, thread safe,
log rotate, auto delete old log files, compress log file etc.

ini file reader: [ini_file_reader.h] support sections marked by [SectionName]
support a config item ocurs multiple times for multiple values, such as:
tracker_server = ip1
tracker_server = ip2
#include directive to include other ini file
#@function directive for annotation
#@set directive to set variables for condition of #@if directive
support control statements for special purpose as:
#@if, #@else, #@endif, #@for, #@endfor

id generator: [id_generator.h] generate unique 64 bits integer ID for multi processes

string operation: [shared_func.h] uppercase, lowercase, trim etc.

base64 encode / decode: [base64.h] for standard base64 or variable base64

url encode / decode: [shared_func.h]

md5 encode: [md5.h]

hash: [hash.h] hash table

chain: [chain.h] singly linked list

blocked queue: [fast_blocked_queue.h]

avl tree: [avl_tree.h] AVL tree

skiplist: [skiplist.h] [flat_skiplist.h] [multi_skiplist.h] flat skiplist and multi skiplist

socket: [sockopt.h] socket wrapper for connect, recv, send etc. support IPv6

ioevent: [ioevent.h] [ioevent_loop.h] like epoll (support Linux, FreeBSD and SunOS),

io buffer management: [fast_task_queue.h] for network io buffer

memory pool: [fast_mpool.h]

object based allocator: [fast_mblock.h]

connection pool: [connection_pool.h]

time wheel based timer: [fast_timer.h] for network timeout management, very high performance

local ip functions: [local_ip_func.h] get local ipv4 addresses

system info functions: [system_info.h] get cpu count, memory size, system load,
mounted filesystems and processes info etc.

process control: [process_ctrl.h] for process start/stop/restart control

task schedule: [sched_thread.h] task shedule management/thead for repeat tasks

char convert: [char_converter.h] and [char_convert_loader.h] for fast char convert

detail info please see the c header files.

Contributors

Showing top 8 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from happyfish100/libfastcommon via the GitHub API.Last fetched: 6/27/2026