All Projects → troglobit → libite

troglobit / libite

Licence: MIT license
That missing frog DNA you've been looking for

Programming Languages

c
50402 projects - #5 most used programming language
M4
1887 projects
Makefile
30231 projects

Projects that are alternatives of or similar to libite

Bbo
bbo is a utility library of zero dependencies for javascript. 🍖🌭🍔
Stars: ✭ 227 (+354%)
Mutual labels:  utility-library
extensions-kit
📦 Collection of Swift+Apple Frameworks extensions for speeding up software development [iOS & iPadOS].
Stars: ✭ 71 (+42%)
Mutual labels:  utility-library
path-dsl-rs
A Rust utility DSL and macro to help construct and modify Paths.
Stars: ✭ 19 (-62%)
Mutual labels:  utility-library
stork
Stork is a dashboard for BIND 9 and Kea DHCP. It is under active development, with monthly releases. The initial priority is to provide monitoring and troubleshooting support.
Stars: ✭ 53 (+6%)
Mutual labels:  isc
Poetic-License
Limerick Open License in the spirit of OpenBSD, ISC, BSD0, and MIT Licenses
Stars: ✭ 36 (-28%)
Mutual labels:  mit-license
koa-mongoDB
😊😊Koa and mongoose build services
Stars: ✭ 24 (-52%)
Mutual labels:  mit-license
Eth Utils
Utility functions for working with ethereum related codebases.
Stars: ✭ 179 (+258%)
Mutual labels:  utility-library
svut
SVUT is a simple framework to create Verilog/SystemVerilog unit tests. Just focus on your tests!
Stars: ✭ 48 (-4%)
Mutual labels:  mit-license
iris
Lightweight Component Model and Messaging Framework based on ØMQ
Stars: ✭ 50 (+0%)
Mutual labels:  mit-license
comic-sans-everything
Chrome Extension | Changes All Text to Comic Sans
Stars: ✭ 32 (-36%)
Mutual labels:  mit-license
C Algorithms
A library of common data structures and algorithms written in C.
Stars: ✭ 2,654 (+5208%)
Mutual labels:  isc
Go Linq
.NET LINQ capabilities in Go
Stars: ✭ 2,791 (+5482%)
Mutual labels:  generic-functions
molch
An implementation of the axolotl ratchet based on libsodium.
Stars: ✭ 24 (-52%)
Mutual labels:  isc
mpv-repl
A graphical REPL for mpv input commands
Stars: ✭ 70 (+40%)
Mutual labels:  isc
JustAnotherVoiceChat-Server
Server for the JustAnotherVoiceChat TeamSpeak 3 plugin
Stars: ✭ 17 (-66%)
Mutual labels:  mit-license
Dlib
Allocators, I/O streams, math, geometry, image and audio processing for D
Stars: ✭ 182 (+264%)
Mutual labels:  utility-library
Mathematical-Mesh
The Mesh is an infrastructure that makes the Internet easier to use by making it more secure.
Stars: ✭ 39 (-22%)
Mutual labels:  mit-license
restaurant-hugo
The restaurant is a creative and responsive restaurant website theme in Hugo environment. It is very well decorated theme which will make your website building easier.
Stars: ✭ 50 (+0%)
Mutual labels:  mit-license
react-advertising
A JavaScript library for display ads in React applications.
Stars: ✭ 50 (+0%)
Mutual labels:  mit-license
Entia
Entia is a free, open-source, data-oriented, highly performant, parallelizable and extensible Entity-Component-System (ECS) framework written in C# especially for game development.
Stars: ✭ 28 (-44%)
Mutual labels:  mit-license

-lite | Frog DNA, basically

GitHub Status codedocs status Coverity Status

Table of Contents

NOTE: Incompatible changes in v2.0 compared to v1.x!

Introduction

Libite is a lightweight library of frog DNA that can be used to fill the gaps in any dinosaur project. It holds useful functions and macros developed by both Finit and the OpenBSD project. Most notably the string functions: strlcpy(3), strlcat(3) and the highly useful *BSD sys/queue.h and sys/tree.h API's.

Libite holds many of the missing pieces in GNU libc, although -lite does not aim to become another GLIB. One noticeable gap in GLIBC is the _SAFE macros available in the BSD sys/queue.h API — highly recommended when traversing lists to delete/free nodes.

The code is open sourced under a mix of permissive Open Source licenses: MIT/X11 license, ISC license, and BSD licenses.

Tip: have a look at my blog post about other useful UNIX API's! https://troglobit.com/post/2020-02-22-useful-unix-apis/

Using -lite

Libite is by default installed as a library and a set of include files. To prevent clashing with include files of the same name -lite employs an include file namespace libite/, which is strongly recommended to use in your applications:

#include <libite/lite.h>
#include <libite/conio.h>
#include <libite/queue.h>
#include <libite/tree.h>

Note: prior to v2.5.0, the lite/ namespace was used for headers, which is still available in the default install. This clashed with the headers of the LiTE library from the DirectFB project.

The output from the pkg-config tool holds no surprises:

$ pkg-config --libs --static --cflags libite
-I/usr/local/include -D_LIBITE_LITE -L/usr/local/lib -lite

Note: _LIBITE_LITE is defined since v2.5.0, useful for software that want to be able to build against headers from an older libite:

#ifdef _LIBITE_LITE
# include <libite/lite.h>
#else
# include <lite/lite.h>
#endif

The prefix path /usr/local/ shown here is only the default. Use the configure script to select a different prefix when installing libite.

For GNU autotools based projects, use the following in configure.ac:

# Check for required libraries
PKG_CHECK_MODULES([lite], [libite >= 1.5.0])

and in your Makefile.am:

proggy_CFLAGS = $(lite_CFLAGS)
proggy_LDADD  = $(lite_LIBS)

API Documentaion: https://codedocs.xyz/troglobit/libite/

Build & Install

This library was initially built for and developed on GNU/Linux systems as a light weight utility library, these days NetBSD should also work.

$ ./configure
$ make -j5
$ sudo make install-strip
$ sudo ldconfig

Use ./configure --without-symlink to prevent the install step from creating the lite -> libite/ compatibility symlink for the header files, required for systems with DirectFB LiTE. The default, however, is to install the symlink to ensure compatibility with existing software that depends on the -lite library headers in their previous namespace.

Note: When checking out code from GIT, use ./autogen.sh to generate a configure script. It is a generated file and otherwise only included in released tarballs.

Origin & References

Much of the code in libite (-lite) is written by Claudio Matsuoka for the original Finit and released under the MIT/X11 license. Joachim Wiberg later improved on the Finit code base and included pieces of software released under the ISC and BSD licenses. See each respective file for license details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].