C Libraries for LuaTEX
The subversion repository is at
- Setting up an infrastructure for building libraries for
using SWIG so that we stay close to the original API's.
- Investigate libraries of different complexity. We also
explore the impact of dependencies on other libraries.
- Provide a set of common helpers that can be integrated in
- Provide documentation on how to use this infrastructure and
how to roll out your own.
- Come up with a naming scheme that makes it possible to avoid
clashes between similar libraries. In principle a user or macro
package should be able to generate libraries independently of others
and use these in a regular TEX setup.
- Make a couple of working examples of libraries, available
for all major platforms.
For a rationale updated to Oct. 2013 see rationale
The paper accepted for TUBboat vol.36, no.1 (2015) is here
There is a shell script build.sh
to build a wrapper for Linux 64bit and crosscompile for MicroSoft™ 32bit and 64bit with MinGW compilers.
The current version of luatex is luatex-beta-0.79.3.1
This binding should provide a common way to build arrays & pointers for
double and support for
The binding has an experimental support for Windows 64bit (not Cygwin). The GMP library is replaced with the API-compatible MPIR.
This binding shows how to build your own dso module only with SWIG.
These bindings very likely will be moved to the "ground floor", but currently they need some testing. Sometime the version of a
wrapper from the ground can stay here for a while, before to be removed.
These bindings could be moved to the "ground floor", but currently they need testing and motivations.
These bindings explore some ideas and/or are not complete and/or — for some other reason — they are not satisfactory.
They can be promoted as the other wrappers, but they can also be deleted or stay here frozen. The build system can be obsolete.
Copyright © 2013- Luigi Scarso
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.