Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/livesplit/livesplit-core

livesplit-core is a library that provides a lot of functionality for creating a speedrun timer.
https://github.com/livesplit/livesplit-core

android c csharp hacktoberfest ios java javascript library livesplit ruby rust speedrun speedrun-timer speedrunning timer

Last synced: 5 days ago
JSON representation

livesplit-core is a library that provides a lot of functionality for creating a speedrun timer.

Awesome Lists containing this project

README

        

# LiveSplit livesplit-core

[![Build Status](https://github.com/LiveSplit/livesplit-core/workflows/Build/badge.svg)](https://github.com/LiveSplit/livesplit-core/actions)
[![crates.io](https://img.shields.io/crates/v/livesplit-core.svg)](https://crates.io/crates/livesplit-core)
[![npm](https://img.shields.io/npm/v/livesplit-core.svg)](https://www.npmjs.com/package/livesplit-core)
[![docs.rs](https://docs.rs/livesplit-core/badge.svg)](https://docs.rs/livesplit-core/)
[![dependency status](https://deps.rs/repo/github/LiveSplit/livesplit-core/status.svg)](https://deps.rs/repo/github/LiveSplit/livesplit-core)

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:

- [Rust Documentation](https://docs.rs/livesplit-core/)
- [TypeScript Documentation](https://livesplit.org/livesplit-core-docs/)

## Projects using `livesplit-core`

- [LiveSplit One Web](https://github.com/LiveSplit/LiveSplitOne)
- [LiveSplit One Desktop Prototype](https://github.com/CryZe/livesplit-one-desktop)
- [LiveSplit One OBS Plugin](https://github.com/LiveSplit/obs-livesplit-one)
- [chronos Terminal Timer](https://github.com/DarkRTA/chronos)
- [annelid](https://github.com/dagit/annelid)
- [splits.io (Parsing)](https://splits.io)

## Build Instructions

You can install Rust with the installer available on [rustup.rs](https://rustup.rs/).
Clone the repository and build the library with the following command:

```bash
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:

```bash
# 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:

```bash
cargo run
```

The bindings will then be available in `capi/bindings`.

## Download

Builds for a lot of common platforms are available in the [Releases](https://github.com/LiveSplit/livesplit-core/releases).

## License

Licensed under either of

- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or
http://www.apache.org/licenses/LICENSE-2.0)
- MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
at your option.

### 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.