[package] name = "markov" version = "0.7.1" description = "Generate string of text from Markov chain fed by stdin" authors = ["Avril "] edition = "2018" license = "gpl-3.0-or-later" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [features] default = ["compress-chain", "split-newlines", "api"] # Compress the chain data file when saved to disk compress-chain = ["async-compression", "bzip2-sys"] # Treat each new line as a new set to feed instead of feeding the whole data at once split-newlines = [] # Feed each sentance seperately with default /get api, instead of just each line / whole body # Maybe better without `split-newlines`? # Kinda experimental split-sentance = [] # Always aggregate incoming buffer instead of streaming them # This will make feeds faster but allocate full buffers for the aggregated body # # Large write: ~95ms # # NOTE: This does nothing if `split-newlines` is not enabled always-aggregate = [] # Feeds will hog the buffer lock until the whole body has been fed, instead of acquiring lock every time # This will make feeds of many lines faster but can potentially cause DoS # # With: ~169ms # Without: ~195ms # # NOTE: # This does nothing if `always-aggregate` is enabled and/or `split-newlines` is not enabled hog-buffer = [] # Enable the /api/ route api = [] [profile.release] opt-level = 3 lto = "fat" codegen-units = 1 [dependencies] chain = {package = "markov", version = "1.1.0"} tokio = {version = "0.2", features=["full"]} warp = "0.2" pretty_env_logger = "0.4.0" hyper = "0.13.8" log = "0.4.11" cfg-if = "1.0.0" futures = "0.3.6" serde_cbor = "0.11.1" serde = {version ="1.0", features=["derive"]} toml = "0.5.6" async-compression = {version = "0.3.5", features=["tokio-02", "bzip2"], optional=true} pin-project = "0.4" libc = "0.2.79" smallmap = "1.1.5" lazy_static = "1.4.0" once_cell = "1.4.1" bzip2-sys = {version = "0.1.9", optional = true} [build-dependencies] rustc_version = "0.2"