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.
 
 
 
 
Go to file
YuQing ccbc201636 bugfixed: MUST set tail->next to mblock->free_chain_head 2023-05-21 10:54:15 +08:00
debian gh actions: upgrade to 1.0.66-1 2023-02-18 05:43:58 +00:00
doc ini_file_reader-Chinese.md #@add_annotation 2018-08-27 15:58:30 +08:00
php-fastcommon open file with flag O_CLOEXEC 2022-06-24 18:52:39 +08:00
src bugfixed: MUST set tail->next to mblock->free_chain_head 2023-05-21 10:54:15 +08:00
.gitignore sorted queue use double link chain for quick push 2023-05-04 17:08:51 +08:00
HISTORY fast_mblock_init_ex2 add parameter prealloc_trunk_count 2023-05-19 11:20:30 +08:00
INSTALL upgrade version to 1.0.66 2023-02-15 21:06:06 +08:00
LICENSE modify license to LGPLv3 and copyright 2020-10-14 11:03:46 +08:00
README modify website name 2019-11-23 10:03:54 +08:00
libfastcommon.spec upgrade version to 1.0.67 2023-05-16 09:40:12 +08:00
make.sh make.sh: link with -lrt when glibc versions less than 2.17 in Linux 2023-03-14 15:23:30 +08:00

README

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.