Skip to content

Unsafe Rust FFI bindings to libmv's C API

License

GPL-2.0, GPL-3.0 licenses found

Licenses found

GPL-2.0
LICENSE-GPLv2
GPL-3.0
LICENSE-GPLv3
Notifications You must be signed in to change notification settings

meew0/libmv-capi-sys

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

libmv-capi-sys

Unsafe Rust FFI bindings around libmv, the motion tracking library used by Blender. Makes use of Blender's own C bindings combined with the standalone distribution of libmv.

Important licensing note

While libmv itself is MIT licensed, the C bindings come directly from Blender's source code, which is licensed as GPLv2 or later. As a consequence, this crate is also licensed as GPLv2 or later, which you must keep in mind when using it.

Dependencies; dynamic vs. static linking

Regardless of the way libmv is built, building this crate requires libpng to be available. This should usually not pose a problem.

By default, libmv will be built and linked to statically. This is a bit inconvenient because it also requires a few additional libraries (GOMP, SuiteSparse, and a BLAS provider like OpenBLAS) to be available at compile time, even if the runtime code does not necessarily use it.

The alternative is to build libmv as a dynamic library and link to it dynamically. This can be achieved by selecting the "dynamic" Cargo feature. However, libmv is not usually packaged by Linux distributions (it is not even in the AUR), and (or maybe, because) compiling it does not result in one convenient libmv.so package, but in 13 individual files with names like libbase.so or libimage.so that make them awkward to install system-wide. So depending on your use case, this might be even more inconvenient.

About

Unsafe Rust FFI bindings to libmv's C API

Resources

License

GPL-2.0, GPL-3.0 licenses found

Licenses found

GPL-2.0
LICENSE-GPLv2
GPL-3.0
LICENSE-GPLv3

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published