#timer #hotkey #keyboard #speedrun #livesplit

no-std livesplit-hotkey

livesplit-hotkey provides cross-platform global hotkey hooks

7 releases (breaking)

0.7.0 Dec 28, 2022
0.6.0 Nov 14, 2021
0.5.0 May 14, 2019
0.4.0 Sep 22, 2018
0.1.0 Apr 3, 2017

#497 in Development tools

Download history 12/week @ 2023-11-20 5/week @ 2024-02-12 9/week @ 2024-02-19 39/week @ 2024-02-26 13/week @ 2024-03-04

66 downloads per month
Used in livesplit-core

Apache-2.0/MIT

215KB
4K SLoC

LiveSplit livesplit-core

Build Status crates.io npm docs.rs dependency status

livesplit-core is a library that provides a lot of functionality for creating a speedrun timer. It can be used directly from Rust. Additional bindings are available for the following programming languages:

  • C
  • C++
  • C#
  • Java with Java Native Access or Java Native Interface
  • Kotlin with Java Native Interface
  • Swift
  • Ruby
  • Python
  • JavaScript + TypeScript for Node.js and WebAssembly

The documentation is available here:

Projects using livesplit-core

Build Instructions

You can install Rust with the installer available on rustup.rs. Clone the repository and build the library with the following command:

cargo build --release -p livesplit-core-capi

The library will then be available as a shared and static library in the target folder. If you only want to build the library as a shared or static library, not both, you can run either one of the following commands:

# Shared Library
cargo rustc --release -p livesplit-core-capi --crate-type cdylib
# Static Library
cargo rustc --release -p livesplit-core-capi --crate-type staticlib

If you want to build the bindings for the library too, you need to go into the capi/bind_gen folder and run the following command:

cargo run

The bindings will then be available in capi/bindings.

Download

Builds for a lot of common platforms are available in the Releases.

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.


lib.rs:

livesplit-hotkey is a crate that allows listening to hotkeys even when the application is not in focus. The crate currently supports Windows, macOS, Linux and the web via wasm-bindgen. On unsupported platforms the crate still compiles but uses a stubbed out implementation instead that never receives any hotkeys.

Dependencies

~0.6–13MB
~137K SLoC