  In this paper we present Kvik: an implementation of a task-based "middleware"
for shared memory parallel programming in the Rust language built on top of the
Rayon library. We devise a system allowing several task-splitting schedulers to
be finely tuned by the end users. Among these, we propose an implementation of
an adaptive scheduler reducing tasks creations (splits) to bare minimum by
linking tasks splitting to steal requests. Another important scheduler that
allows turning computations into sequences of parallel operations is described.
This operator proves itself particularly useful for interruptible computations.
We exhibit different code examples well suited for different types of
schedulers. We conclude our work with a set of benchmarks making heavy use of
composability. In particular we present a parallel stable sort implementation
with up to 1.5x more speedup when compared to the state-of-the-art parallel
sorting implementation.
