From a4dd0ad63c00f4dee3b86dfd3075d1d61b2b3180 Mon Sep 17 00:00:00 2001 From: sanine Date: Sat, 27 Aug 2022 23:52:56 -0500 Subject: add plibsys --- 3rdparty/plibsys/README.md | 115 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 3rdparty/plibsys/README.md (limited to '3rdparty/plibsys/README.md') diff --git a/3rdparty/plibsys/README.md b/3rdparty/plibsys/README.md new file mode 100644 index 0000000..a25b247 --- /dev/null +++ b/3rdparty/plibsys/README.md @@ -0,0 +1,115 @@ + +[![](https://api.travis-ci.org/saprykin/plibsys.svg?branch=master)](https://travis-ci.org/saprykin/plibsys) +[![](https://ci.appveyor.com/api/projects/status/github/saprykin/plibsys?branch=appveyor_test&svg=true)](https://ci.appveyor.com/project/saprykin/plibsys) +[![](https://scan.coverity.com/projects/8333/badge.svg)](https://scan.coverity.com/projects/saprykin-plibsys) +[![](https://codecov.io/gh/saprykin/plibsys/branch/master/graph/badge.svg)](https://codecov.io/gh/saprykin/plibsys) +[![](https://codedocs.xyz/saprykin/plibsys.svg)](https://codedocs.xyz/saprykin/plibsys/) +[![](https://img.shields.io/badge/license-MIT-ff69b4.svg)](https://opensource.org/licenses/MIT) + +## About + +plibsys is a cross-platform system C library with some helpful routines. +It has zero third-party dependencies 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 +* Macros for variable arguments + +To achieve maximum native performance on each platform several implementation models are used: + +* Threading models: POSIX, Solaris, OS/2, BeOS, AtheOS, AmigaOS and Win32 +* IPC models: POSIX, System V, OS/2, AmigaOS and Win32 +* Time profiler models: POSIX, Solaris, Mach, OS/2, BeOS, AmigaOS, Win32 and generic +* Directory iterating models: POSIX, OS/2 and Win32 +* Shared library loading models: POSIX, HP-UX, OS/2, BeOS, AmigaOS 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 +* AmigaOS + +plibsys also supports the following mobile platforms: + +* iOS, watchOS, tvOS +* Android +* 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, AArch32, AArch64) +* Intel (x86, x64) +* QCC (x86, AArch32) +* Oracle Solaris Studio (x86, x64, SPARCv9) +* MIPSpro (MIPS32) +* XL C (PPC64le) +* DEC C (Alpha) +* PGI (x86, x64) +* Cray (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](http://saprykin.github.io/plibsys-docs). + +## License + +plibsys is distributed under the terms of MIT license. + +## More + +More information about the library is available on the [Wiki](https://github.com/saprykin/plibsys/wiki). -- cgit v1.2.1