ssll - simple shared library loader

Sönke Ludwig sludwig+d at outerproduct.org
Mon Jan 6 10:04:38 UTC 2020


Am 06.01.2020 um 00:23 schrieb Oleg B:
> It's analog of bindbc, but without need write boilerplate code.
> May be bindbc is designed for another cases, but I don't understand need 
> writing triple definition for one function (pointer, loading, 
> wrap-function).
> ssll betterC compatible too, and tested on windows (x86) and linux (x86, 
> ARM).
> 
> package: http://code.dlang.org/packages/ssll
> github: https://github.com/deviator/ssll
> 
> Example usage:
> 
> Mosquitto binding and wrapper
> https://github.com/deviator/mosquittod/blob/master/source/mosquittod/api/load.d 
> 
> 
> libsystemd binding
> https://github.com/deviator/sdutil/blob/master/source/systemd/daemon.d
> 
> I think somebody can find it handy.

Just throwing this in as a possible API alternative/addition - I've 
written something similar with the goal to make it work transparently 
with existing static bindings: https://code.dlang.org/packages/dynamic

It uses a mixin to specify the module(s) containing the declarations 
instead of a UDA:


mixin dynamicBinding!(somelib) _somelib;

void main()
{
     _somelib.loadBinding(["somelib.so"]);

     import somelib : foo;
     foo();
}


More information about the Digitalmars-d-announce mailing list