# tokio-shared-rs
Share a tokio Runtime between a dylib/cdylib and the main binary
Caution: multi-thread flavor is not supported yet
## Usage
```toml
[dependencies]
tokio-shared = "0.1"
```
checkout examples/example.rs
### dylib's case
```rust
use tokio_shared::SharedTokioHandle;
fn main() {
let handle = SharedTokioHandle::new();
let _guard = example_lib::setup_shared_tokio_ref(&handle);
example_lib::run("dylib");
}
```
### cdylib's case
```rust
use tokio_shared::SharedTokioHandle;
fn main() {
let dylib = unsafe { libloading::Library::new(dylib) }.expect("error loading dylib");
let setup_tokio: FnSetupTokio = unsafe { *dylib.get(b"setup_shared_tokio_ref").unwrap() };
let _guard = setup_tokio(&logger);
let run: FnRun = unsafe { *dylib.get(b"run").unwrap() };
run("cdylib");
}
```