Skip to main content

Rustfst

License: MIT/Apache-2.0 Maintenance Github tag

Rust

rustc >= 1.51.0 Native Linux test status Documentation

Python

PyPI version PyPI download month PyPI pyversions

Rust implementation of Weighted Finite States Transducers.

Rustfst is a library for constructing, combining, optimizing, and searching weighted finite-state transducers (FSTs). Weighted finite-state transducers are automata where each transition has an input label, an output label, and a weight. The more familiar finite-state acceptor is represented as a transducer with each transition's input and output label equal. Finite-state acceptors are used to represent sets of strings (specifically, regular or rational sets); finite-state transducers are used to represent binary relations between pairs of strings (specifically, rational transductions). The weights can be used to represent the cost of taking a particular transition.

FSTs have key applications in speech recognition and synthesis, machine translation, optical character recognition, pattern matching, string processing, machine learning, information extraction and retrieval among others. Often a weighted transducer is used to represent a probabilistic model (e.g., an n-gram model, pronunciation model). FSTs can be optimized by determinization and minimization, models can be applied to hypothesis sets (also represented as automata) or cascaded by finite-state composition, and the best results can be selected by shortest-path algorithms.

fst

Overview

For a basic example see the section below.

Some simple and commonly encountered types of FSTs can be easily created with the macro [fst] or the functions acceptor and transducer.

For more complex cases you will likely start with the VectorFst type, which will be imported in the [prelude] along with most everything else you need. VectorFst<TropicalWeight> corresponds directly to the OpenFST StdVectorFst, and can be used to load its files using read or read_text.

Because "iteration" over an FST can mean many different things, there are a variety of different iterators. To iterate over state IDs you may use states_iter, while to iterate over transitions out of a state, you may use get_trs. Since it is common to iterate over both, this can be done using fst_iter or fst_into_iter. It is also very common to iterate over paths accepted by an FST, which can be done with paths_iter, and as a convenience for generating text, string_paths_iter. Alternately, in the case of a linear FST, you may retrieve the only possible path with decode_linear_fst.

Note that iterating over paths is not the same thing as finding the shortest path or paths, which is done with shortest_path (for a single path) or shortest_path_with_config (for N-shortest paths).

For the complete list of algorithms, see the [algorithms] module.

You may now be wondering, especially if you have previously used such linguist-friendly tools as pyfoma, "what if I just want to transduce some text???" The unfriendly answer is that rustfst is a somewhat lower-level library, designed for implementing things like speech recognizers. The somewhat more helpful answer is that you would do this by constructing an acceptor for your input, which you will compose with a transducer, then project the result to itsoutput, and finally iterate over the paths in the resulting FST.

References

Implementation heavily inspired from Mehryar Mohri's, Cyril Allauzen's and Michael Riley's work :

The API closely resembles that of OpenFST, with some simplifications and changes to make it more idiomatic in Rust, notably the use of Tr instead of Arc. See Differences fromOpenFST for more information.

Example

use anyhow::Result;
use rustfst::prelude::*;
use rustfst::algorithms::determinize::{DeterminizeType, determinize};
use rustfst::algorithms::rm_epsilon::rm_epsilon;

fn main() -> Result<()> {
    // Creates a empty wFST
    let mut fst = VectorFst::<TropicalWeight>::new();

    // Add some states
    let s0 = fst.add_state();
    let s1 = fst.add_state();
    let s2 = fst.add_state();

    // Set s0 as the start state
    fst.set_start(s0)?;

    // Add a transition from s0 to s1
    fst.add_tr(s0, Tr::new(3, 5, 10.0, s1))?;

    // Add a transition from s0 to s2
    fst.add_tr(s0, Tr::new(5, 7, 18.0, s2))?;

    // Set s1 and s2 as final states
    fst.set_final(s1, 31.0)?;
    fst.set_final(s2, 45.0)?;

    // Iter over all the paths in the wFST
    for p in fst.paths_iter() {
         println!("{:?}", p);
    }

    // A lot of operations are available to modify/optimize the FST.
    // Here are a few examples :

    // - Remove useless states.
    connect(&mut fst)?;

    // - Optimize the FST by merging states with the same behaviour.
    minimize(&mut fst)?;

    // - Copy all the input labels in the output.
    project(&mut fst, ProjectType::ProjectInput);

    // - Remove epsilon transitions.
    rm_epsilon(&mut fst)?;

    // - Compute an equivalent FST but deterministic.
    fst = determinize(&fst)?;

    Ok(())
}

Differences from OpenFST

Here is a non-exhaustive list of ways in which Rustfst's API differs from OpenFST:

  • The default epsilon symbol is <eps> and not <epsilon>.
  • Functions and methods follow Rust naming conventions, e.g. add_state rather than AddState, but are otherwise mostly equivalent, except that:
  • Transitions are called Tr and not Arc, because Arc has a rather different and well-established meaning in Rust, and rustfst uses it (std::sync::Arc, that is) to reference-count symbol tables. All associated functions also use tr.
  • Final states are not indicated by a final weight of zero. You can test for finality using is_final, and final_weight returns an [Option]. This requires some care when converting OpenFST code.
  • Transitions can be accessed directly as a slice rather than requiring an iterator.
  • Semiring operations are expressed as plain old methods rather than strange C++ things. So write w1.plus(w2) rather than Plus(w1, w2), for instance.
  • Weights have in-place operations for ⊕ (plus_assign) and ⊗ (times_assign).
  • Most of the type aliases (which would be trait aliases in Rust) such as StdArc, StdFst, and so forth, are missing, but type inference allows us to avoid explicit type arguments in most cases, such as when calling [Tr::new], for instance.
  • State IDs are unsigned, with [NO_STATE_ID] used for a missing value. They are also 32 bits by default (presumably, 4 billion states is enough for most applications). This means you must take care to cast them to [usize] when using them as indices, and vice-versa, preferably checking for overflows
  • Symbol IDs are also unsigned and 32-bits, with [NO_LABEL] used for a missing value.
  • Floating-point weights are not generic, so are always single-precision.

Benchmark with OpenFST

I did a benchmark some time ago on almost every linear fst algorithm and compared the results with OpenFst. You can find the results here :

Spoiler alert: Rustfst is faster on all those algorithms 😅

Documentation

The documentation of the last released version is available here : https://docs.rs/rustfst

Release process

  1. Use the script update_version.sh to update the version of every package.
  2. Push
  3. Push a new tag with the prefix rustfst-v

Example :

./update_version.sh 0.9.1-alpha.6
git commit -am "Release 0.9.1-alpha.6"
git push
git tag -a rustfst-v0.9.1-alpha.6 -m "Release rustfst 0.9.1-alpha.6"  
git push --tags

Optionally, if this is a major release, create a GitHub release in the UI.

Projects contained in this repository

This repository contains two main projects:

  • rustfst is the Rust re-implementation.
    • Crate available on crates.io here
    • Documentation available on docs.rs here
  • rustfst-python is the python binding of rustfst.
    • Package available on Pypi here
    • Documentation available on Github Pages here

License

Licensed under either of

at your option.

Contribution

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

Metadata

Release files for rustfst-python 1.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for rustfst-python 1.1.1
File
rustfst_python-1.1.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl PyPy 3.9 PyPy 3.9 7.3 Linux glibc 2.17+ x86-64 Details
rustfst_python-1.1.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl PyPy 3.9 PyPy 3.9 7.3 Linux glibc 2.5+ x86-32, Linux glibc 2.17+ x86-32 Details
rustfst_python-1.1.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl PyPy 3.9 PyPy 3.9 7.3 macOS 10.9+ x86-64 Details
rustfst_python-1.1.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl PyPy 3.8 PyPy 3.8 7.3 Linux glibc 2.17+ x86-64 Details
rustfst_python-1.1.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl PyPy 3.8 PyPy 3.8 7.3 Linux glibc 2.17+ x86-32, Linux glibc 2.5+ x86-32 Details
rustfst_python-1.1.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl PyPy 3.8 PyPy 3.8 7.3 macOS 10.9+ x86-64 Details
rustfst_python-1.1.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl PyPy 3.7 PyPy 3.7 7.3 Linux glibc 2.17+ x86-64 Details
rustfst_python-1.1.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl PyPy 3.7 PyPy 3.7 7.3 Linux glibc 2.5+ x86-32, Linux glibc 2.17+ x86-32 Details
rustfst_python-1.1.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl PyPy 3.7 PyPy 3.7 7.3 macOS 10.9+ x86-64 Details
rustfst_python-1.1.1-cp311-cp311-musllinux_1_1_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.1+ x86-64 Details
rustfst_python-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
rustfst_python-1.1.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-32, Linux glibc 2.5+ x86-32 Details
rustfst_python-1.1.1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
rustfst_python-1.1.1-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details
rustfst_python-1.1.1-cp310-cp310-musllinux_1_1_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.1+ x86-64 Details
rustfst_python-1.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
rustfst_python-1.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-32, Linux glibc 2.5+ x86-32 Details
rustfst_python-1.1.1-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
rustfst_python-1.1.1-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details
rustfst_python-1.1.1-cp39-cp39-musllinux_1_1_x86_64.whl CPython 3.9 CPython 3.9 Linux musl 1.1+ x86-64 Details
rustfst_python-1.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
rustfst_python-1.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-32, Linux glibc 2.5+ x86-32 Details
rustfst_python-1.1.1-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
rustfst_python-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details
rustfst_python-1.1.1-cp38-cp38-musllinux_1_1_x86_64.whl CPython 3.8 CPython 3.8 Linux musl 1.1+ x86-64 Details
rustfst_python-1.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details
rustfst_python-1.1.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-32, Linux glibc 2.5+ x86-32 Details
rustfst_python-1.1.1-cp38-cp38-macosx_11_0_arm64.whl CPython 3.8 CPython 3.8 macOS 11.0+ ARM64 Details
rustfst_python-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl CPython 3.8 CPython 3.8 macOS 10.9+ x86-64 Details
rustfst_python-1.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux musl 1.1+ x86-64 Details
rustfst_python-1.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64 Details
rustfst_python-1.1.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-32, Linux glibc 2.17+ x86-32 Details
rustfst_python-1.1.1-cp37-cp37m-macosx_10_9_x86_64.whl CPython 3.7 CPython 3.7 pymalloc macOS 10.9+ x86-64 Details

Total release size: 25.4 MB

Release files / rustfst_python-1.1.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rustfst_python-1.1.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 796.2 kB
Tags Linux glibc 2.17+ x86-64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
df74f4377a00f5f7f37b66e83927d37d978159aa9165fa3c124983355cee2450
BLAKE2b-256 checksum
How to use checksums
9efdbda3458570e4e518b2e6dcd50782ded100fde1a0b663f02a7efecf0990a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl

Download URL rustfst_python-1.1.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Size 813.4 kB
Tags Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
f2e392d6e9b15578d0c0a13615989ea7853299114f7710927a74a725585400fe
BLAKE2b-256 checksum
How to use checksums
b351dd3b326b45992e02a55aac631e0830f02339adfeaa80b508243c591907c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl

Download URL rustfst_python-1.1.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Size 727.0 kB
Tags PyPy 3.9 PyPy 3.9 7.3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
a20d6c8afcddf64770c9de0aebd3c4c893ebe422f91e38d8362bc9e02f10835f
BLAKE2b-256 checksum
How to use checksums
be825a1a0ed18035bc2422db6b4f02670e0b5eef3087ec10c1805d3c59cd2f41
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rustfst_python-1.1.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 796.2 kB
Tags Linux glibc 2.17+ x86-64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
a0655276943fe1c43205de1ab2578c9e6396bd943757f000528eb86037de2d08
BLAKE2b-256 checksum
How to use checksums
8a36ab82d555abd52490995ab09050a3642ef237dd2e6305ea82a9617ba502ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl

Download URL rustfst_python-1.1.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Size 813.4 kB
Tags Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
1cb35bd4d96f03edcc70546b67777b6b5b8696094c42262bff506d381cec3ff9
BLAKE2b-256 checksum
How to use checksums
8c8f7de715d18c30ca191e454ad64d136039bcb4f0d9e1778e3eb46d3a2dbab6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl

Download URL rustfst_python-1.1.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Size 727.0 kB
Tags PyPy 3.8 PyPy 3.8 7.3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
9091a34876daa217b26ad38978ca134ef3efeeb6122a9b632ce2ad9b0941c44c
BLAKE2b-256 checksum
How to use checksums
4bb6f8e616c71801492ef144387b381a61796f27a01fa5c58ec185f86a50eaff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rustfst_python-1.1.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 796.2 kB
Tags Linux glibc 2.17+ x86-64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
ef0493cf6714e3e7c9dd262c3106afd4ed14abfb62b27213382d5a21a38914b8
BLAKE2b-256 checksum
How to use checksums
d3a7e12f528ec298b32a88d8eb74dffdd578feb25d841b45f3b789a49f8fd002
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl

Download URL rustfst_python-1.1.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Size 813.4 kB
Tags Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
8462f13490bdedbd700b7cdd6f82bc007b8052475451d5a0f13aeab447bf0adf
BLAKE2b-256 checksum
How to use checksums
2fce4bf42fcf5d2306f0243e88a88ab127ee54adb8520738732ca50314ddf834
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl

Download URL rustfst_python-1.1.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Size 727.0 kB
Tags PyPy 3.7 PyPy 3.7 7.3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
5bc6e894ad404374cb13ae51242fe5e4366a6d388f6f34bf5d8fc42cee1aad83
BLAKE2b-256 checksum
How to use checksums
a073912510235d740e76d0a80821a30c909e3246ed75b02c762f3779efdfbb2d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-cp311-cp311-musllinux_1_1_x86_64.whl

Download URL rustfst_python-1.1.1-cp311-cp311-musllinux_1_1_x86_64.whl
Size 828.7 kB
Tags CPython 3.11 Linux musl 1.1+ x86-64
SHA-256 checksum
How to use checksums
73adf07e8b42d88543e4f1a2ca1834485f3fb0ca1b82c09226ae4f2f7873272d
BLAKE2b-256 checksum
How to use checksums
1c8013e7c30cbb081df0a03753686aeb330a39132b198ce6aeea6b710e5d6a27
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rustfst_python-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 796.2 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
72f32b0e75e44b34c15cbb602db91f12f10a5ef182f2d06eaf8f50ac0e59e085
BLAKE2b-256 checksum
How to use checksums
0c08944a7c774121290d136a4f87596e1710a137c4c354ad5d306dbcdbbdc852
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl

Download URL rustfst_python-1.1.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Size 813.4 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
697750bb4996dcd245484fdc208d3ae5425bf3add2ade29bae8198ca9576d778
BLAKE2b-256 checksum
How to use checksums
ca649ec9880b7b9899649ac28d13c45cb55dbe4ef7bfa3c99c51815f56bcfc71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-cp311-cp311-macosx_11_0_arm64.whl

Download URL rustfst_python-1.1.1-cp311-cp311-macosx_11_0_arm64.whl
Size 651.3 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e6b0fa55d3c3742306868d35b816a691654f6e5b5b39ed9b5360abf864e374be
BLAKE2b-256 checksum
How to use checksums
984aaa421fc15694e4bd8104a88b21a41f1d117435eefd9fdb748e0ff2d9d3cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-cp311-cp311-macosx_10_9_x86_64.whl

Download URL rustfst_python-1.1.1-cp311-cp311-macosx_10_9_x86_64.whl
Size 727.0 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
7548595e5ee096486675964116abb299b59cc0abcd41d8cd963aa29662e717d3
BLAKE2b-256 checksum
How to use checksums
220fabd1db14b6466329fc4ee830177f2cc34f49fd06556978f5c7fd07cb6a01
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-cp310-cp310-musllinux_1_1_x86_64.whl

Download URL rustfst_python-1.1.1-cp310-cp310-musllinux_1_1_x86_64.whl
Size 828.7 kB
Tags CPython 3.10 Linux musl 1.1+ x86-64
SHA-256 checksum
How to use checksums
84679cd3f7c5f237976a6487e7e09415bc68149d759a2656bebe7590a00fde50
BLAKE2b-256 checksum
How to use checksums
38767538e148abc7b008a76ae575aa58d6efd9e782d124c862c3a51debbde81f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rustfst_python-1.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 796.2 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b4593b3ea4c3982c1c61b5d8e0e6456c23b774fc0926fd3a4dd714e8b8d7221c
BLAKE2b-256 checksum
How to use checksums
fee25c862afed897209466c0472eeb2ba6d548de472b721cc14d518f46a99828
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl

Download URL rustfst_python-1.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Size 813.4 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
c3b40376df8806f5a809b7a7a7147ecac704ca9ce613526c60c7aa75d0133a26
BLAKE2b-256 checksum
How to use checksums
caad91a549323fdb9df14b7c9ca1a9fbebbfc728e14a3c7f43e2ed99091e4254
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-cp310-cp310-macosx_11_0_arm64.whl

Download URL rustfst_python-1.1.1-cp310-cp310-macosx_11_0_arm64.whl
Size 651.4 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e771e5daef024e1643e23091d1f6cadf92e03a81a1d243f52c560deaa610bd02
BLAKE2b-256 checksum
How to use checksums
b4b86ff27220e04af4a2ef313eb54b448e309e10cc1e30884170ac48e6962baa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-cp310-cp310-macosx_10_9_x86_64.whl

Download URL rustfst_python-1.1.1-cp310-cp310-macosx_10_9_x86_64.whl
Size 727.0 kB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
8763ae567ad09de7733518eaeef1583f4c023f9dba67cfae2e235b4ad0d10360
BLAKE2b-256 checksum
How to use checksums
0992ef76c0379a708c45af41de6471d3cbb589893814bfc49643ea95dfbaf4ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-cp39-cp39-musllinux_1_1_x86_64.whl

Download URL rustfst_python-1.1.1-cp39-cp39-musllinux_1_1_x86_64.whl
Size 828.7 kB
Tags CPython 3.9 Linux musl 1.1+ x86-64
SHA-256 checksum
How to use checksums
3b8772fd27f65b1867e162bc9be3315db84b3694d69991a64e0725827aae34d8
BLAKE2b-256 checksum
How to use checksums
4c1e0758ea4c385de1dcb2aa49af60672f99e1efc1e28f5d648a96e588b24de3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rustfst_python-1.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 796.2 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
7b45020caa7d164ba6d3642ab7f187f14f1c7c3c6d5d89db3f384e15db1677bb
BLAKE2b-256 checksum
How to use checksums
38e36e8d514655ebb3e9d942c636c5f772f79a64c517dd1f7db1384eb06fe901
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl

Download URL rustfst_python-1.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Size 813.4 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
66c2a1d6b4b84735a91434c89b1a0f9a988dca769577b24577df6773ff626580
BLAKE2b-256 checksum
How to use checksums
8d364fa299cf0d7ee045ab1c819dc8f6c9b38192216a1ca6a0171411cfbd0750
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-cp39-cp39-macosx_11_0_arm64.whl

Download URL rustfst_python-1.1.1-cp39-cp39-macosx_11_0_arm64.whl
Size 651.3 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c24f0f81c7f0ed23778dd56a100586ddaa13993df3ea695842ff93b7449c345d
BLAKE2b-256 checksum
How to use checksums
e04a43edfbe77a6d6c8de0b310f1789f2cbe36aeb3136852a11372eefcaf42d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl

Download URL rustfst_python-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl
Size 727.0 kB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
0b7fa790e71ee41bd3ea0b6996f0357979c5e155ed77fe6e36d5e6cf1f7af3c4
BLAKE2b-256 checksum
How to use checksums
482e0df2524307c75c830660336667aca95a948fa193b019f1843fb6d6b52f03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-cp38-cp38-musllinux_1_1_x86_64.whl

Download URL rustfst_python-1.1.1-cp38-cp38-musllinux_1_1_x86_64.whl
Size 828.7 kB
Tags CPython 3.8 Linux musl 1.1+ x86-64
SHA-256 checksum
How to use checksums
a2e2290aeb52fb2a4756ab94876f013f27f3ead5b499c57d3582bcd87f602511
BLAKE2b-256 checksum
How to use checksums
83626570a6e1ba44792f78e92fa8d0a5b4f5c81b983394f87337ebf7f57b74ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rustfst_python-1.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 796.2 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
2c4198704b0db98d90d0b745870712f87fb2f2bbebedf65cf298034158a6041d
BLAKE2b-256 checksum
How to use checksums
f8904000b6dc8ff695bdabe95b299e2025ce9f378022d7d3cb00ec90a6a69725
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl

Download URL rustfst_python-1.1.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Size 813.4 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
81deeca59dd74f05287b56477cd06f4adf220653381c05ab64e2629794785c13
BLAKE2b-256 checksum
How to use checksums
c9dfebe05765b8f66a3ed7d9cf205802015f1b4d334f7cc51f106e497e91c1a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-cp38-cp38-macosx_11_0_arm64.whl

Download URL rustfst_python-1.1.1-cp38-cp38-macosx_11_0_arm64.whl
Size 651.3 kB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ed341b0849e832ad3b46181b37ab6207b3fd618a5d7c5caa345e3c1c1591d52e
BLAKE2b-256 checksum
How to use checksums
2d85cc7c5bf02986101ed869e2bdbef0834c8094472a4c0695e025d1b2914c65
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl

Download URL rustfst_python-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl
Size 727.0 kB
Tags CPython 3.8 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
37d07cd26f6e991f41bc7e2e1b2c2d8d68ca91391065ad2adf32963f87ec5c13
BLAKE2b-256 checksum
How to use checksums
7c589cc67d71da82bb3cd766fe8aee74dab1bebc7c3fdf2bdfd994d6d468f552
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl

Download URL rustfst_python-1.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl
Size 828.7 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux musl 1.1+ x86-64
SHA-256 checksum
How to use checksums
127d937ba6bee5b8dabac0f43bd2cdb89343d2ec17f6395da06ca7bc0c62c02a
BLAKE2b-256 checksum
How to use checksums
c2717a0faeaf2067904a00977550a29b4d8c648f2f46d38b5985db1d9ff7991b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rustfst_python-1.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 796.2 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
367c5ed83e44b046ea658bfa4e5fc8b8de8c56d5d8bb839cc1bfbeaffb0620f6
BLAKE2b-256 checksum
How to use checksums
9a5a5236e184743015b86f1a096480eb32a43a248b78dbffaadd307d873face0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl

Download URL rustfst_python-1.1.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Size 813.4 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
e86f3575fc07294e993cfe109f3fe1f3f1143ed25eeb69f3a5b814427addb866
BLAKE2b-256 checksum
How to use checksums
f04a540e32b86af02dca7487b40bd2e13189e2abc025bd8fec40f26f050d74f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / rustfst_python-1.1.1-cp37-cp37m-macosx_10_9_x86_64.whl

Download URL rustfst_python-1.1.1-cp37-cp37m-macosx_10_9_x86_64.whl
Size 727.0 kB
Tags CPython 3.7 CPython 3.7 pymalloc macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
ff9ac3f5643fe52f378cfce91e3d01545533d6d78fcc6a15aa95da86f05dc7e3
BLAKE2b-256 checksum
How to use checksums
5cee28648713348c18596d8ca30a49a5fd2c6d016597ac4f9658790da37fc824
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page