I donโt know Valu, but if you can call native code, declare C structures and pass them as pointers to the specified native code and define functions that use C calling conventions, this should be possible. But in C / C ++ this will be easier to do.
Edit: his homepage says
valac creates C source and source files from Vala source files, as if you wrote your library or application directly in C. Using the Vala library from C application will not look different than using any other GObject-based library. There will not be a vala runtime library, and applications can distribute the generated C code with their archive files, so there are no additional runtime or build time dependencies for users.
So, although this is not final, I would say that you probably can.
source share