================= Universal Service ================= Universal Service is a collection of garbage collectors written in C. ------- License ------- Universal Service is licensed under the LGPL-3.0-or-later. Contrary to popular belief, **static linking LGPL code does not force your code to be LGPL.** The LGPL requires you to allow the user to swap out the LGPL code for anything that fits the interface, and for you to redistribute modifications to the LGPL code. From the `GNU Project FAQ `_: > Does the LGPL have different requirements for statically vs dynamically > linked modules with a covered work? > > For the purpose of complying with the LGPL (any extant version: v2, v2.1 or v3): > > If you statically link against an LGPLed library, you must also > provide your application in an object (not necessarily source) format, > so that a user has the opportunity to modify the library and relink > the application. You can statically link any LGPL 3.0 code to code of permissive licenses (like MIT), and even to source-available license (like the SSPL or the Commons Clause) as long as the end user can recompile the program to use their own version of the library. ---- Todo ---- * call before gc and after gc * Make makefiles simpler and POSIX compliant * Address sanitizer, ub sanitizer if available