perseus 0.3.5

A lightning-fast frontend web dev platform with full support for SSR and SSG.
Documentation
[package]
name = "perseus"
version = "0.3.5"
edition = "2018"
description = "A lightning-fast frontend web dev platform with full support for SSR and SSG."
authors = ["arctic_hen7 <arctic_hen7@pm.me>"]
license = "MIT"
repository = "https://github.com/arctic-hen7/perseus"
homepage = "https://arctic-hen7.github.io/perseus"
readme = "../../README.md"
keywords = ["wasm", "frontend", "webdev", "ssg", "ssr"]
categories = ["wasm", "web-programming", "development-tools", "asynchronous", "gui"]

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
sycamore = { version = "^0.7.1", features = ["ssr"] }
sycamore-router = "^0.7.1"
perseus-macro = { path = "../perseus-macro", version = "0.3.5" }
# TODO review feature flags here
web-sys = { version = "0.3", features = [ "Headers", "Navigator", "NodeList", "Request", "RequestInit", "RequestMode", "Response", "ReadableStream", "Window" ] }
wasm-bindgen = { version = "0.2", features = ["serde-serialize"] }
wasm-bindgen-futures = "0.4"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
thiserror = "1"
fmterr = "0.1"
futures = "0.3"
urlencoding = "2.1"
chrono = "0.4"
http = "0.2"
async-trait = "0.1"
fluent-bundle = { version = "0.15", optional = true }
unic-langid = { version = "0.9", optional = true }
intl-memoizer = { version = "0.5", optional = true }
tokio = { version = "1", features = [ "fs", "io-util" ] }
rexie = { version = "0.2", optional = true }
js-sys = { version = "0.3", optional = true }

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
regex = "1"

[features]
# Live reloading will only take effect in development, and won't impact production
# BUG This adds 1.9kB to the production bundle (that's without size optimizations though)
default = [ "live-reload", "hsr" ]
translator-fluent = ["fluent-bundle", "unic-langid", "intl-memoizer"]
# This feature makes tinker-only plugins be registered (this flag is enabled internally in the engine)
tinker-plugins = []
# This feature enables server-side-only features, which should be used on both the server and in the builder
# This prevents leakage of server-side code
server-side = []
# This feature changes a few defaults so that Perseus works seemlessly when deployed with the `.perseus/` structure (this is activated automatically by `perseus deploy`, and should not be invoked manually!)
standalone = []
# This feature enables Sycamore hydration by default (Sycamore hydration feature is always activated though)
# This is not enabled by default due to some remaining bugs (also, default features in Perseus can't be disabled without altering `.perseus/`)
hydrate = []
# This feature enables the preloading of the Wasm bundle for locale redirections, which in theory improves UX
# For now, this is experimental until it can be tested in the wild (local testing of this is extremely difficult for UX, we need real world metrics)
preload-wasm-on-redirect = []
# This exposes an API for saving frozen state to IndexedDB simply, with options for making your storage persistent so the browser won't delete it
idb-freezing = [ "rexie", "web-sys/StorageManager" ]
# Switches to expecting the server to provide a JS bundle that's been created from Wasm
# Note that this is highly experimental, and currently blocked by [rustwasm/wasm-bindgen#2735](https://github.com/rustwasm/wasm-bindgen/issues/2735)
wasm2js = []
# Enables automatic browser reloading whenever you make a change
live-reload = [ "perseus-macro/live-reload", "js-sys", "web-sys/WebSocket", "web-sys/MessageEvent", "web-sys/ErrorEvent", "web-sys/BinaryType", "web-sys/Location" ]
# Enables hot state reloading, whereby your entire app's state can be frozen and thawed automatically every time you change code in your app
# Note that this has no effect within the Perseus code beyond enabling other features and telling the macros to perform HSR
hsr = [ "live-reload", "idb-freezing", "perseus-macro/hsr" ]