Add raw-api feature flag and document all flags

This commit is contained in:
Niko 2024-04-06 11:27:31 -06:00
parent a325a937e5
commit 7714a10f95
No known key found for this signature in database
GPG key ID: 3861E636EA1E0E2B
3 changed files with 61 additions and 40 deletions

View file

@ -25,6 +25,7 @@ rand = "0.8.4"
[features]
default = []
raw-api = []
coreml = ["whisper-rs-sys/coreml"]
cuda = ["whisper-rs-sys/cuda", "_gpu"]
opencl = ["whisper-rs-sys/opencl"]

View file

@ -63,15 +63,32 @@ See [examples/basic_use.rs](examples/basic_use.rs) for more details.
Lower level bindings are exposed if needed, but the above should be enough for most use cases.
See the docs: https://docs.rs/whisper-rs/ for more details.
## Feature flags
All disabled by default unless otherwise specified.
* `raw-api`: expose whisper-rs-sys without having to pull it in as a dependency.
**NOTE**: enabling this no longer guarantees semver compliance,
as whisper-rs-sys may be upgraded to a breaking version in a patch release of whisper-rs.
* `cuda`: enable CUDA support. Implicitly enables hidden GPU flag at runtime.
* `opencl`: enable OpenCL support. Upstream whisper.cpp does not treat OpenCL as a GPU, so it is always enabled at
runtime.
* `openblas`: enable OpenBLAS support.
* `metal`: enable Metal support. Implicitly enables hidden GPU flag at runtime.
* `whisper-cpp-log`: allows hooking into whisper.cpp's log output and sending it to the `log` backend. Requires calling
* `whisper-cpp-tracing`: allows hooking into whisper.cpp's log output and sending it to the `tracing` backend.
## Building
See [BUILDING.md](BUILDING.md) for instructions for building whisper-rs on Windows and OSX M1. Linux builds should just work out of the box.
See [BUILDING.md](BUILDING.md) for instructions for building whisper-rs on Windows and OSX M1. Linux builds should just
work out of the box.
## Troubleshooting
* Something other than Windows/macOS/Linux isn't working!
* I don't have a way to test these platforms, so I can't really help you.
* If you can get it working, please open a PR with any changes to make it work and build instructions in BUILDING.md!
* If you can get it working, please open a PR with any changes to make it work and build instructions in
BUILDING.md!
* I get a panic during binding generation build!
* You can attempt to fix it yourself, or you can set the `WHISPER_DONT_GENERATE_BINDINGS` environment variable.
This skips attempting to build the bindings whatsoever and copies the existing ones. They may be out of date,
@ -80,6 +97,7 @@ See [BUILDING.md](BUILDING.md) for instructions for building whisper-rs on Windo
* If you can fix the issue, please open a PR!
## License
[Unlicense](LICENSE)
tl;dr: public domain

View file

@ -24,6 +24,8 @@ pub use whisper_ctx::WhisperContext;
pub use whisper_ctx::WhisperContextParameters;
pub use whisper_grammar::{WhisperGrammarElement, WhisperGrammarElementType};
pub use whisper_params::{FullParams, SamplingStrategy};
#[cfg(feature = "raw-api")]
pub use whisper_rs_sys;
pub use whisper_state::WhisperState;
#[cfg(feature = "whisper-cpp-log")]
pub use whisper_sys_log::install_whisper_log_trampoline;