Windmark

Windmark is an elegant and highly performant, async Gemini server framework for
the modern age!
Usage
Check out an example starter project
here!
Add Windmark and Tokio as Dependencies
```toml
Cargo.toml
[dependencies]
windmark = "0.3.2"
tokio = { version = "1.26.0", features = ["full"] }
If you would like to use the built-in logger (recommended)
windmark = { version = "0.3.2", features = ["logger"] }
If you would like to use the built-in MIME dedection when Success
-ing a file
(recommended)
windmark = { version = "0.3.2", features = ["auto-deduce-mime"] }
If you would like to use macro-based responses (as seen below)
windmark = { version = "0.3.2", features = ["response-macros"] }
```
Implement a Windmark server
```rust
// src/main.rs
use windmark::Response;
[windmark::main]
async fn main() -> Result<(), Box> {
windmark::Router::new()
.setprivatekeyfile("windmarkprivate.pem")
.setcertificatefile("windmarkpublic.pem")
.mount("/", windmark::success!("Hello, World!"))
.seterrorhandler(
windmark::permanentfailure!("This route does not exist!")
)
.run()
.await
}
```
Examples
Examples can be found within the
examples/
directory.
An example of a fully featured Gemini capsule written using Windmark can be
found here. This example Gemini capsule also
happens to be the source code for Fuwn's (this
library's author) personal Gemini capsule!
Modules
Modules are reusable extensions which can be procedurally mounted onto Windmark
routers.
Add yours!
Capsules using Windmark
Add yours!
License
This project is licensed with the
GNU General Public License v3.0.