# runtimelib
`runtimelib` is a Rust library for interacting with Jupyter kernels natively, over ZeroMQ.
## Installation
Runtimelib allows you to pick which async runtime you want to use. If you're using tokio, include the `tokio-runtime` flag. For `async-dispatcher` users (AKA GPUI devs), use `async-dispatcher-runtime`. The async dispatcher runtime is also compatible for smol/async-std users.
### Tokio Users
```toml
[dependencies]
runtimelib = { version = "0.27.0", features = ["tokio-runtime"] }
```
### Async-dispatcher Users
```toml
[dependencies]
runtimelib = { version = "0.27.0", features = ["async-dispatcher-runtime"] }
```
## Key Features
- **Jupyter Kernel Management**: Discover, start, and manage Jupyter kernels.
- **Messaging Protocol**: Implement Jupyter's wire protocol for communication with kernels over ZeroMQ.
- **Flexible Async Runtime**: Support for both Tokio and async-dispatcher runtimes.
## Documentation
For more detailed information about the API and its usage, please refer to the [API documentation](https://docs.rs/runtimelib).
## Contributing
We welcome contributions to Runtimelib! If you'd like to contribute, please:
1. Fork the repository
2. Create a new branch for your feature or bug fix
3. Write tests for your changes
4. Implement your changes
5. Submit a pull request
Please make sure to update tests as appropriate and adhere to the existing coding style.
## License
Runtimelib is distributed under the terms of both the MIT license and the Apache License (Version 2.0). See [LICENSE-APACHE](LICENSE-APACHE) and [LICENSE-MIT](LICENSE-MIT) for details.