uael / unic

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

About

plibsys is a cross-platform system C library with some helpful routines. It has zero third-party dependecies and uses only native system calls.

Features

plibsys gives you:

  • Platform independent data types
  • Threads
  • Mutexes
  • Condition variables
  • Read-write locks
  • System-wide semaphores
  • System-wide shared memory
  • Optimized spinlock
  • Atomic operations
  • Socket support (UDP, TCP, SCTP) with IPv4 and IPv6
  • Hash functions: MD5, SHA-1, SHA-2, SHA-3, GOST (R 34.11-94)
  • Binary trees: BST, red-black, AVL
  • INI file parser
  • High resolution time profiler
  • Files and directories
  • Shared library loading
  • Useful routines for linked lists, strings, hash tables
  • Macros for CPU architecture, OS and compiler detection

To achieve maximum native performance on each platform several implementation models are used:

  • Threading models: POSIX, Solaris, OS/2, BeOS, AtheOS and Win32
  • IPC models: POSIX, System V, OS/2 and Win32
  • Time profiler models: POSIX, Solaris, Mach, OS/2, BeOS, Win32 and generic
  • Directory iterating models: POSIX, OS/2 and Win32
  • Shared library loading models: POSIX, HP-UX, OS/2, BeOS and Win32
  • Atomic operations models: sync, C11, DECC, Win32 and simulated
  • Sockets: BSD with Win32 support

Platforms

plibsys is a cross-platform, highly portable library, it is fully covered with unit tests and was tested on the following desktop platforms:

  • GNU/Linux
  • macOS
  • Windows
  • Cygwin, MSYS
  • FreeBSD, NetBSD, OpenBSD
  • DragonFlyBSD
  • Solaris
  • AIX
  • HP-UX
  • Tru64
  • OpenVMS
  • OS/2
  • IRIX
  • QNX Neutrino
  • UnixWare 7
  • SCO OpenServer 5
  • Haiku
  • Syllable
  • BeOS

plibsys also supports the following mobile platforms:

  • BlackBerry 10

It should also work on other *nix systems with or without minimal efforts.

Compilers

plibsys was tested with the following compilers:

  • MSVC (x86, x64) 2003 and above
  • MinGW (x86, x64)
  • Open Watcom (x86)
  • Borland (x86)
  • GCC (x86, x64, PPC32be, PPC64be/le, IA-64/32, IA-64, Alpha, HPPA2.0-32, MIPS32, AArch32, SPARCv9)
  • Clang (x86, x64, PPC32be)
  • Intel (x86, x64)
  • QCC (x86, AArch32)
  • Oracle Solaris Studio (x86, x64, SPARCv9)
  • MIPSpro (MIPS32)
  • XL C (PPC64le)
  • DEC C (Alpha)
  • PGI (x86, x64)

Building

Use CMake to build plibsys for target platform. For OpenVMS see platforms/vms-general directory.

Documentation

Documentation for the latest stable verison is avaialble through the GitHub Pages.

License

plibsys is distributed under the terms of GNU LGPLv2 or higher license.

More

More information about the library is available on the Wiki.

About

License:GNU Lesser General Public License v2.1


Languages

Language:C 92.8%Language:CMake 5.4%Language:DIGITAL Command Language 1.8%