diff --git a/contrib/app-misc/markov/markov-0.8.1.ebuild b/contrib/app-misc/markov/markov-0.8.1.ebuild
new file mode 100644
index 0000000..ff4df03
--- /dev/null
+++ b/contrib/app-misc/markov/markov-0.8.1.ebuild
@@ -0,0 +1,217 @@
+# Copyright 2017-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Auto-Generated by cargo-ebuild 0.3.1
+
+EAPI=7
+CRATES="
+aho-corasick-0.7.13
+arc-swap-0.4.7
+async-compression-0.3.5
+atty-0.2.14
+autocfg-0.1.7
+autocfg-1.0.1
+base64-0.12.3
+bitflags-1.2.1
+block-buffer-0.7.3
+block-buffer-0.9.0
+block-padding-0.1.5
+buf_redux-0.8.4
+byte-tools-0.3.1
+byteorder-1.3.4
+bytes-0.5.6
+bzip2-0.3.3
+bzip2-sys-0.1.9+1.0.8
+cc-1.0.60
+cfg-if-0.1.10
+cfg-if-1.0.0
+cloudabi-0.0.3
+cpuid-bool-0.1.2
+digest-0.8.1
+digest-0.9.0
+dtoa-0.4.6
+either-1.6.1
+env_logger-0.7.1
+fake-simd-0.1.2
+fixedbitset-0.2.0
+fnv-1.0.7
+fuchsia-cprng-0.1.1
+fuchsia-zircon-0.3.3
+fuchsia-zircon-sys-0.3.3
+futures-0.3.6
+futures-channel-0.3.6
+futures-core-0.3.6
+futures-executor-0.3.6
+futures-io-0.3.6
+futures-macro-0.3.6
+futures-sink-0.3.6
+futures-task-0.3.6
+futures-util-0.3.6
+generic-array-0.12.3
+generic-array-0.14.4
+getopts-0.2.21
+getrandom-0.1.15
+h2-0.2.6
+half-1.6.0
+hashbrown-0.9.1
+headers-0.3.2
+headers-core-0.2.0
+hermit-abi-0.1.17
+http-0.2.1
+http-body-0.3.1
+httparse-1.3.4
+httpdate-0.3.2
+humantime-1.3.0
+hyper-0.13.8
+idna-0.2.0
+indexmap-1.6.0
+input_buffer-0.3.1
+iovec-0.1.4
+itertools-0.9.0
+itoa-0.4.6
+kernel32-sys-0.2.2
+lazy_static-1.4.0
+libc-0.2.79
+linked-hash-map-0.5.3
+log-0.4.11
+markov-1.1.0
+matches-0.1.8
+memchr-2.3.3
+mime-0.3.16
+mime_guess-2.0.3
+mio-0.6.22
+mio-named-pipes-0.1.7
+mio-uds-0.6.8
+miow-0.2.1
+miow-0.3.5
+multipart-0.17.0
+net2-0.2.35
+num_cpus-1.13.0
+once_cell-1.4.1
+opaque-debug-0.2.3
+opaque-debug-0.3.0
+percent-encoding-2.1.0
+petgraph-0.5.1
+pin-project-0.4.26
+pin-project-internal-0.4.26
+pin-project-lite-0.1.10
+pin-utils-0.1.0
+pkg-config-0.3.18
+ppv-lite86-0.2.9
+pretty_env_logger-0.4.0
+proc-macro-hack-0.5.18
+proc-macro-nested-0.1.6
+proc-macro2-1.0.24
+quick-error-1.2.3
+quote-1.0.7
+rand-0.6.5
+rand-0.7.3
+rand_chacha-0.1.1
+rand_chacha-0.2.2
+rand_core-0.3.1
+rand_core-0.4.2
+rand_core-0.5.1
+rand_hc-0.1.0
+rand_hc-0.2.0
+rand_isaac-0.1.1
+rand_jitter-0.1.4
+rand_os-0.1.3
+rand_pcg-0.1.2
+rand_xorshift-0.1.1
+rdrand-0.4.0
+redox_syscall-0.1.57
+regex-1.3.9
+regex-syntax-0.6.18
+remove_dir_all-0.5.3
+rustc_version-0.2.3
+ryu-1.0.5
+safemem-0.3.3
+scoped-tls-1.0.0
+semver-0.9.0
+semver-parser-0.7.0
+serde-1.0.116
+serde_cbor-0.11.1
+serde_derive-1.0.116
+serde_json-1.0.58
+serde_urlencoded-0.6.1
+serde_yaml-0.8.13
+sha-1-0.8.2
+sha-1-0.9.1
+signal-hook-registry-1.2.1
+slab-0.4.2
+smallmap-1.1.5
+socket2-0.3.15
+syn-1.0.42
+tempfile-3.1.0
+termcolor-1.1.0
+thread_local-1.0.1
+time-0.1.44
+tinyvec-0.3.4
+tokio-0.2.22
+tokio-macros-0.2.5
+tokio-tungstenite-0.11.0
+tokio-util-0.3.1
+toml-0.5.6
+tower-service-0.3.0
+tracing-0.1.21
+tracing-core-0.1.17
+tracing-futures-0.2.4
+try-lock-0.2.3
+tungstenite-0.11.1
+twoway-0.1.8
+typenum-1.12.0
+unicase-2.6.0
+unicode-bidi-0.3.4
+unicode-normalization-0.1.13
+unicode-width-0.1.8
+unicode-xid-0.2.1
+url-2.1.1
+urlencoding-1.1.1
+utf-8-0.7.5
+version_check-0.9.2
+want-0.3.0
+warp-0.2.5
+wasi-0.10.0+wasi-snapshot-preview1
+wasi-0.9.0+wasi-snapshot-preview1
+winapi-0.2.8
+winapi-0.3.9
+winapi-build-0.1.1
+winapi-i686-pc-windows-gnu-0.4.0
+winapi-util-0.1.5
+winapi-x86_64-pc-windows-gnu-0.4.0
+ws2_32-sys-0.2.1
+yaml-rust-0.4.4
+"
+
+inherit cargo
+
+DESCRIPTION="Generate string of text from Markov chain fed by stdin"
+# Double check the homepage as the cargo_metadata crate
+# does not provide this value so instead repository is used
+HOMEPAGE="https://flanchan.moe/markov/"
+SRC_URI="$(cargo_crate_uris ${CRATES}) https://git.flanchan.moe/attachments/c6f37bfc-afd8-462f-807f-ab9f95197680 -> markov-0.8.1.crate"
+RESTRICT="mirror"
+# License set may be more restrictive as OR is not respected
+# use cargo-license for a more accurate license picture
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="+compress-chain +split-newlines +api split-sentance feed-sentance always-aggregate hog-buffer"
+
+DEPEND="compress-chain? ( app-arch/bzip2 )"
+RDEPEND=""
+
+src_configure() {
+ local myfeatures=(
+ $(usev compress-chain)
+ $(usev split-newlines)
+ $(usev api)
+ $(usev split-sentance)
+ $(usev feed-sentance)
+ $(usev always-aggregate)
+ $(usev hog-buffer)
+ )
+ #TODO: This hack slows compilation down I think, but without it ld fails so... We should add cargo buildscript to do this instead
+ use compress-chain && export RUSTFLAGS="${RUSTFLAGS} -ldylib=bz2"
+ cargo_src_configure --no-default-features
+}
diff --git a/contrib/app-misc/markov/metadata.xml b/contrib/app-misc/markov/metadata.xml
index 5c242d3..18a5a4e 100644
--- a/contrib/app-misc/markov/metadata.xml
+++ b/contrib/app-misc/markov/metadata.xml
@@ -8,7 +8,8 @@
Compress chain when saving/loading
Treat each new line as a new set to feed
Enable /api route
- Use sentance split by default (not recommended)
+ Further split buffers by sentance, feeding a new one for each.
+ Split by sentance as well as word boundaries
Always operate on aggregated request body (can speed up writes at the cost of memory)
Acquire chain mutex write lock while streaming body (can speed up writes, but can also allow for DoS)
diff --git a/markov-0.8.1.ebuild b/markov-0.8.1.ebuild
new file mode 100644
index 0000000..2113e35
--- /dev/null
+++ b/markov-0.8.1.ebuild
@@ -0,0 +1,203 @@
+# Copyright 2017-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Auto-Generated by cargo-ebuild 0.3.1
+
+EAPI=7
+
+CRATES="
+aho-corasick-0.7.13
+arc-swap-0.4.7
+async-compression-0.3.5
+atty-0.2.14
+autocfg-0.1.7
+autocfg-1.0.1
+base64-0.12.3
+bitflags-1.2.1
+block-buffer-0.7.3
+block-buffer-0.9.0
+block-padding-0.1.5
+buf_redux-0.8.4
+byte-tools-0.3.1
+byteorder-1.3.4
+bytes-0.5.6
+bzip2-0.3.3
+bzip2-sys-0.1.9+1.0.8
+cc-1.0.60
+cfg-if-0.1.10
+cfg-if-1.0.0
+cloudabi-0.0.3
+cpuid-bool-0.1.2
+digest-0.8.1
+digest-0.9.0
+dtoa-0.4.6
+either-1.6.1
+env_logger-0.7.1
+fake-simd-0.1.2
+fixedbitset-0.2.0
+fnv-1.0.7
+fuchsia-cprng-0.1.1
+fuchsia-zircon-0.3.3
+fuchsia-zircon-sys-0.3.3
+futures-0.3.6
+futures-channel-0.3.6
+futures-core-0.3.6
+futures-executor-0.3.6
+futures-io-0.3.6
+futures-macro-0.3.6
+futures-sink-0.3.6
+futures-task-0.3.6
+futures-util-0.3.6
+generic-array-0.12.3
+generic-array-0.14.4
+getopts-0.2.21
+getrandom-0.1.15
+h2-0.2.6
+half-1.6.0
+hashbrown-0.9.1
+headers-0.3.2
+headers-core-0.2.0
+hermit-abi-0.1.17
+http-0.2.1
+http-body-0.3.1
+httparse-1.3.4
+httpdate-0.3.2
+humantime-1.3.0
+hyper-0.13.8
+idna-0.2.0
+indexmap-1.6.0
+input_buffer-0.3.1
+iovec-0.1.4
+itertools-0.9.0
+itoa-0.4.6
+kernel32-sys-0.2.2
+lazy_static-1.4.0
+libc-0.2.79
+linked-hash-map-0.5.3
+log-0.4.11
+markov-1.1.0
+matches-0.1.8
+memchr-2.3.3
+mime-0.3.16
+mime_guess-2.0.3
+mio-0.6.22
+mio-named-pipes-0.1.7
+mio-uds-0.6.8
+miow-0.2.1
+miow-0.3.5
+multipart-0.17.0
+net2-0.2.35
+num_cpus-1.13.0
+once_cell-1.4.1
+opaque-debug-0.2.3
+opaque-debug-0.3.0
+percent-encoding-2.1.0
+petgraph-0.5.1
+pin-project-0.4.26
+pin-project-internal-0.4.26
+pin-project-lite-0.1.10
+pin-utils-0.1.0
+pkg-config-0.3.18
+ppv-lite86-0.2.9
+pretty_env_logger-0.4.0
+proc-macro-hack-0.5.18
+proc-macro-nested-0.1.6
+proc-macro2-1.0.24
+quick-error-1.2.3
+quote-1.0.7
+rand-0.6.5
+rand-0.7.3
+rand_chacha-0.1.1
+rand_chacha-0.2.2
+rand_core-0.3.1
+rand_core-0.4.2
+rand_core-0.5.1
+rand_hc-0.1.0
+rand_hc-0.2.0
+rand_isaac-0.1.1
+rand_jitter-0.1.4
+rand_os-0.1.3
+rand_pcg-0.1.2
+rand_xorshift-0.1.1
+rdrand-0.4.0
+redox_syscall-0.1.57
+regex-1.3.9
+regex-syntax-0.6.18
+remove_dir_all-0.5.3
+rustc_version-0.2.3
+ryu-1.0.5
+safemem-0.3.3
+scoped-tls-1.0.0
+semver-0.9.0
+semver-parser-0.7.0
+serde-1.0.116
+serde_cbor-0.11.1
+serde_derive-1.0.116
+serde_json-1.0.58
+serde_urlencoded-0.6.1
+serde_yaml-0.8.13
+sha-1-0.8.2
+sha-1-0.9.1
+signal-hook-registry-1.2.1
+slab-0.4.2
+smallmap-1.1.5
+socket2-0.3.15
+syn-1.0.42
+tempfile-3.1.0
+termcolor-1.1.0
+thread_local-1.0.1
+time-0.1.44
+tinyvec-0.3.4
+tokio-0.2.22
+tokio-macros-0.2.5
+tokio-tungstenite-0.11.0
+tokio-util-0.3.1
+toml-0.5.6
+tower-service-0.3.0
+tracing-0.1.21
+tracing-core-0.1.17
+tracing-futures-0.2.4
+try-lock-0.2.3
+tungstenite-0.11.1
+twoway-0.1.8
+typenum-1.12.0
+unicase-2.6.0
+unicode-bidi-0.3.4
+unicode-normalization-0.1.13
+unicode-width-0.1.8
+unicode-xid-0.2.1
+url-2.1.1
+urlencoding-1.1.1
+utf-8-0.7.5
+version_check-0.9.2
+want-0.3.0
+warp-0.2.5
+wasi-0.10.0+wasi-snapshot-preview1
+wasi-0.9.0+wasi-snapshot-preview1
+winapi-0.2.8
+winapi-0.3.9
+winapi-build-0.1.1
+winapi-i686-pc-windows-gnu-0.4.0
+winapi-util-0.1.5
+winapi-x86_64-pc-windows-gnu-0.4.0
+ws2_32-sys-0.2.1
+yaml-rust-0.4.4
+"
+
+inherit cargo
+
+DESCRIPTION="Generate string of text from Markov chain fed by stdin"
+# Double check the homepage as the cargo_metadata crate
+# does not provide this value so instead repository is used
+HOMEPAGE="homepage field in Cargo.toml inaccessible to cargo metadata"
+SRC_URI="$(cargo_crate_uris ${CRATES})"
+RESTRICT="mirror"
+# License set may be more restrictive as OR is not respected
+# use cargo-license for a more accurate license picture
+LICENSE="Apache-2.0 Apache-2.0 WITH LLVM-exception BSD-2-Clause BSD-3-Clause BSL-1.0 CC0-1.0 ISC MIT Unlicense Zlib gpl-3.0-or-later"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""