Library that contains OpenCL APIs, Adapters, FFI headers and related utilities.
This library is intended to support future version of OpenCL while maintaining long term support for Rust.
By Long Term Support, we commit to fix bugs and to actively maintain proper functionality of this library over the years. We also plan to create several milestones for this project to have sustainable development over long period of time.
This library is intended to provide these features alongside of traditional ones.
- Compatible with Latest OpenCL Versions (OpenCL 3.0)
- Supports Compatiblity with Older and Deprecated APIs for Previous Versions (OpenCL 1.1, 1.2 etc.)
- Lightweight Headers and API Objects
- Superior Error Handling
- Periodic Bug Fix Management
- Optimised for High Performance
- Ease of Use and Simplicity
- Types and Functions Safety
This library can be installed in two ways.
- Precompiled library files (for major platforms), you can download those from the release section of this repository.
- Build it yourself (needs cargo installed obviously), instructions are simple:
cargo build --release
and to test the functions on your platform:cargo test
The N3N follows Semantic Versioning for their projects. There are 3 types of release lifecycle associated with this project, described as below:
- Major releases
x.0.0
supports the version jump from Khronos OpenCL. Before updating to these versions, be sure to review changelog first. - Minor release
0.x.0
integrates new library features or Khronos OpenCL Header updates. Generally these changes are safe and are non-disruptive to previous releases. - LTS releases
0.0.x
supports critical bug fix and patches and are safe to update to these versions without second thought.
Please refer to VENDORING document for more details.
We welcome community contributions to this project.
Please read our Contributor Guide for more information on how to get started. Please also read our Contributor Terms before you make any contributions.
Any contribution intentionally submitted for inclusion in a N3N project or a Knytx Labs open source project, shall comply with the Rust standard licensing model (MIT OR Apache 2.0) and therefore be dual licensed as described below, without any additional terms or conditions:
This contribution is dual licensed under EITHER OF
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
For clarity, "your" refers to the N3N contributors, NCRYPTO Labs Private Limited or any other licensee/user of the contribution.
See CREDITS.md
file for heartiest thanks and acknowledgement to other awesome developers out there.
The OpenCL and the OpenCL logo are trademarks of Apple Inc. used by permission by Khronos. Complete license details are available on the Khronos and Apple website.
This project is initiated by Naman Bishnoi @diabloxenon