Skip to main content

TJA file parser written in Rust, working in Rust, Python, and WebAssembly.

Project description

tja-rs

An efficient TJA file parser, written in Rust, that supports Rust, Python, and WebAssembly environments.

It is highly optimized for speed and includes features such as a synthesizer for synthesizing music along with don/ka sound effects from a TJA file.

It's fast! Check out the benchmark.

Building Instructions

Rust

The Rust target requires no additional feature flags.

To build the library, run:

cargo build

To build the CLI tool, run:

cargo build --bin tja

Python

We use maturin to build the Python package. The Python package requires the python feature flag to be enabled.

To build the Python package .whl, run:

maturin build -F python --release

To develop and test, run:

maturin develop -F python

Python virtual environment is necessary. (e.g. conda, micromamba, poetry, pixi)

To navigate variable, please check tja.pyi

WebAssembly

We use wasm-pack to build the WebAssembly package. The WebAssembly package requires the wasm feature flag to be enabled.

To build the WebAssembly package, run:

wasm-pack build --features wasm

Performance Benchmarks

The parser is highly optimized for performance.

It can parse a typical TJA file in under 1 ms in full mode, and in metadata-only mode in under 5 µs.

For detailed benchmarks and comparisons, check out our benchmark report.

To run the benchmark:

cargo bench

Synthesizer

The TJA parser includes a synthesizer binary that can synthesize music along with don/ka sound effects from a TJA file:

cargo run -F audio --bin synthesize <TJA file> <music file> <don sound file> <ka sound file> --course <course> --branch <branch>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tja-0.3.3.tar.gz (194.2 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

tja-0.3.3-cp38-abi3-win_amd64.whl (225.4 kB view details)

Uploaded CPython 3.8+Windows x86-64

tja-0.3.3-cp38-abi3-win32.whl (217.3 kB view details)

Uploaded CPython 3.8+Windows x86

tja-0.3.3-cp38-abi3-musllinux_1_2_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ x86-64

tja-0.3.3-cp38-abi3-musllinux_1_2_i686.whl (3.0 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ i686

tja-0.3.3-cp38-abi3-musllinux_1_2_armv7l.whl (2.9 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARMv7l

tja-0.3.3-cp38-abi3-musllinux_1_2_aarch64.whl (3.0 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARM64

tja-0.3.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

tja-0.3.3-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (3.5 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ s390x

tja-0.3.3-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.9 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ppc64le

tja-0.3.3-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.7 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARMv7l

tja-0.3.3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

tja-0.3.3-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl (2.8 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.5+ i686

tja-0.3.3-cp38-abi3-macosx_11_0_arm64.whl (355.1 kB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

tja-0.3.3-cp38-abi3-macosx_10_12_x86_64.whl (363.2 kB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

Details for the file tja-0.3.3.tar.gz.

File metadata

  • Download URL: tja-0.3.3.tar.gz
  • Upload date:
  • Size: 194.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.8.2

File hashes

Hashes for tja-0.3.3.tar.gz
Algorithm Hash digest
SHA256 70e2737462b1af66dfc1f2e62deed1d3b3efdb9dff13722ff2db134d830180e1
MD5 45f4ce0edcdad0970c1e090d6e2ddf89
BLAKE2b-256 e45b52ddbd19477fa2d7643a5abb1cbeeaf940023dcaf9cfbc56a24739c2fca2

See more details on using hashes here.

File details

Details for the file tja-0.3.3-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: tja-0.3.3-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 225.4 kB
  • Tags: CPython 3.8+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.8.2

File hashes

Hashes for tja-0.3.3-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6d61f5975d8f6dbaf0aa6a97c5dad4d98ec56ab35ced83865078eb90cfecb92c
MD5 79309309393553db953d105c5ac858e7
BLAKE2b-256 a19d160239d84433412c6c8afb4641f534d43571a646b9e45b36b313577d51ae

See more details on using hashes here.

File details

Details for the file tja-0.3.3-cp38-abi3-win32.whl.

File metadata

  • Download URL: tja-0.3.3-cp38-abi3-win32.whl
  • Upload date:
  • Size: 217.3 kB
  • Tags: CPython 3.8+, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.8.2

File hashes

Hashes for tja-0.3.3-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 531fe3cfb1c018c38215351eacdb3f9912239550937549b44bc61d15da152e87
MD5 c95114968e8e970ac3e057b805eb58f3
BLAKE2b-256 76b9647265fa65086affffcfdc50554658e13c092f727674b4609853c1f2ea6f

See more details on using hashes here.

File details

Details for the file tja-0.3.3-cp38-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tja-0.3.3-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 02c1a006259902372c31262c47951eab3a3450a6f6c0dde8193772678119ca04
MD5 3769f29f1ee668612c5d1c5ef93b8ef7
BLAKE2b-256 135552493a6c4270409ce931d95d6863484d5c663607d73aa98046aa1b4405a7

See more details on using hashes here.

File details

Details for the file tja-0.3.3-cp38-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for tja-0.3.3-cp38-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 30109607154e700ed4fcbe0297f96a68214d36a10a42bb5fe6dc9f1f29402221
MD5 57f702f6079f35699322f224d181bb46
BLAKE2b-256 99f9921edbfa32bedbb608c0c10bf9c08e0da1016e6e351d4d699241d60ababb

See more details on using hashes here.

File details

Details for the file tja-0.3.3-cp38-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for tja-0.3.3-cp38-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 48fc7b5c637c6a7736125b9760ebba2d872e1e3d360b357060ec4a21620576a6
MD5 98e469bc03dfec5122dc9257b6111e2d
BLAKE2b-256 57304a6ad780925a1cc819400e68e05d606f6975b395d134570275410c42b1c9

See more details on using hashes here.

File details

Details for the file tja-0.3.3-cp38-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for tja-0.3.3-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 53ad273dc4413ceb25f19558009063045ff972f5be453bb8073c836ea9f3cf31
MD5 47c7483e3bd9e70a2d43c9df52fba5a4
BLAKE2b-256 827ec713624470f8a2eead28ed47d1bb67a064929d5b80cc352aebd740423fd4

See more details on using hashes here.

File details

Details for the file tja-0.3.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tja-0.3.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9ebde35edcc4cd1ced1c51bf06d00dedfe228a203c1be8abe5df047acbf6eb6b
MD5 bfa7f0b2c065e51f0a65f28d15a27dbc
BLAKE2b-256 59d6efa5d6b10de40c5cf54740e446b94a716b142812fb5ac73b8bd2052f3253

See more details on using hashes here.

File details

Details for the file tja-0.3.3-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for tja-0.3.3-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 b291b271ed5b7429f507044e37c2f466d3baad420f01163459fc55c9e1e817f5
MD5 b0581eed484e0e11a794e501555a0587
BLAKE2b-256 a186631ca28b39eff3a642e5972bff3004dea368d3d5d4c71b8f9fbbabb72d02

See more details on using hashes here.

File details

Details for the file tja-0.3.3-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for tja-0.3.3-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 4354d80df0000a6b14ccb477aebc9878b1875f56667ed89b45af5ff86936f54e
MD5 4e17430bd8fa919d9eb3e2b6895e0807
BLAKE2b-256 f0438ba99f7c626a5862d02f0da3049c1f4d534600eacf86eff42131fb8fca3a

See more details on using hashes here.

File details

Details for the file tja-0.3.3-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for tja-0.3.3-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 f52398ac5c32e927f588de7a9e593d4eec3ab738ca888f0f385fdff17515039c
MD5 b926af125148f638fd3ac9e57f178733
BLAKE2b-256 ca74406537bd2592e4f9ec0a93d7f0db6f60e71ee46feb22fe1cb89b6938d6b3

See more details on using hashes here.

File details

Details for the file tja-0.3.3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tja-0.3.3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8e4291ef34d9973fa657c1847bd5415bf8657717fd0134f315d19219cc216292
MD5 aaad841384292cd7f83ee6320d2493dc
BLAKE2b-256 6cbe40ff43e686930b68bd015933b2d6058f4e16a96d4f4176a3a84dee70d0fc

See more details on using hashes here.

File details

Details for the file tja-0.3.3-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for tja-0.3.3-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 ac8d253da763693d3834ad7b7261b77f4964f94790597856049c7ccd71127c7e
MD5 a050b7de5b044e0f73c286bc3c6f38df
BLAKE2b-256 ebf47c96a288f8a9acdcb30b5a77deeb460e1fbdb0c9854b9fc6fca792bba74c

See more details on using hashes here.

File details

Details for the file tja-0.3.3-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tja-0.3.3-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c50b58a5eb7f3e35e2893c7d456a17d5670521728543c03ed161e1c35ee7a3e2
MD5 0ee859d8b57cd440561240b0abf4f4c6
BLAKE2b-256 43dfd3a6002a390b69421f9c3de6fb1961b6c6d0973c138ceb0521947529135b

See more details on using hashes here.

File details

Details for the file tja-0.3.3-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for tja-0.3.3-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2f6446f93e37ce168babc1a373fcd073f79bcb65f594266e64ab42ebdbea9457
MD5 c92d3348be1025ac081ba2ce5ef52ac4
BLAKE2b-256 5593c88d284610ed3e526aa8036c1c2bc85fac8d93ff0bf5ffcb3245750f38a8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page