dynamic 1.0.0
Generates dynamic bindings from static bindings at compile time
To use this package, run the following command in your project's root directory:
						Manual usage
						
						Put the following dependency into your project's dependences section:
					
dynamic
This is an automatic generator for runtime bindings to shared libraries/DLLs
that works based on plain static bindings consisting of - typically
extern(C) - function prototypes. This means that the same bindings can be
used to either link statically against a library, or to load the library at
runtime.
Example
import std.stdio : writefln;
import deimos.zmq.zmq;
import dynamic;
// generates the trampoline functions that forward to
// the API entry points loaded at runtime
mixin dynamicBinding!(deimos.zmq.zmq) _zmq;
void main()
{
	// load all API functions from the shared library
	version (Windows) enum libs = ["zmq.dll"];
	else enum libs = ["libzmq.so"];
	_zmq.loadBinding(libs);
	// start to use the API as usual
	auto context = zmq_ctx_new();
	auto sock = zmq_socket(context, ZMQ_REP);
	int rc = zmq_bind(sock, "tcp://*:5555");
	assert(rc == 0);
	ubyte[10] buf;
	auto len = zmq_recv(sock, buf.ptr, buf.length, 0);
	writefln(Received: %s", buf[0 .. len]);
}
Testing the included example project
First, build the example library:
cd example
dub build :foo
This will create a dynamic/shared library in the foo/ sub folder. Afterwards, build and run the example itself:
dub
This will load the generated dynamic library at runtime and will then calls the
exported foo function. Note how the foo_binding.d file defines just a static
function prototype, which could just as well be used to statically link against
the library.
- 1.0.0 released 2 years ago
- s-ludwig/dynamic
- MIT
- Copyright © 2017, Sönke Ludwig
- Authors:
- Dependencies:
- none
- Versions:
- 
						
 Show all 10 versions1.0.0 2023-Mar-17 0.9.7 2020-Apr-17 0.9.6 2020-Feb-03 0.9.5 2019-Jun-25 0.9.4 2018-Feb-12 
- Download Stats:
- 
						- 
								0 downloads today 
- 
								3 downloads this week 
- 
								7 downloads this month 
- 
								398 downloads total 
 
- 
								
- Score:
- 1.2
- Short URL:
- dynamic.dub.pm