Skip to content

rrthomas/mork

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
                                 mork
                                 ----

                (c) Reuben Thomas 2011 <rrt@sc3d.org>
                 https://github.com/rrthomas/mork

Mork provides automatic C bindings for Lua using ctypesgen-json and
alien. (Mork is a friendly alien. However, it cannot drink through its
fingers. Indeed, it does not have fingers. It is a shallow analogy.)
Mork is distributed under the MIT License, like Lua itself.

alien is a libffi binding for Lua: http://mascarenhas.github.com/alien/

ctypesgen-json turns C headers into JSON for use with libffi:
http://code.google.com/p/ctypesgen/

It might be better to use cparser: http://sourceforge.net/projects/cparser/


Usage
-----

First, turn a header file into JSON using ctypesgen-json:

$ ctypesgen.py --all-headers --builtin-symbols --output-language=json /usr/include/foo.h -o foo.json

Then in Lua, Mork slurps up the JSON and generates alien bindings on
the fly, returning a module:

require "mork"
require "json"

module = mork.bind (json.decode (io.open ("foo.json"):read ("*a")))

About

Automatic C bindings for Lua, using alien and ctypesgen-json

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages