🏗️ Elegant & Highly Performant Async Gemini Server Framework for the Modern Age
async framework gemini-protocol protocol gemini rust
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

docs(cargo): bump version

Also, use the doc attribute to include the README automatically! Wish I
knew about this earlier!

Fuwn 666c2780 c36a6a2b

+12 -88
+1 -1
Cargo.toml
··· 2 2 3 3 [package] 4 4 name = "windmark" 5 - version = "0.1.14" 5 + version = "0.1.15" 6 6 authors = ["Fuwn <contact@fuwn.me>"] 7 7 edition = "2021" 8 8 description = "An elegant and highly performant async Gemini server framework"
+3 -3
README.md
··· 15 15 # Cargo.toml 16 16 17 17 [dependencies] 18 - windmark = "0.1.14" 18 + windmark = "0.1.15" 19 19 tokio = { version = "0.2.4", features = ["full"] } 20 20 21 21 # If you would like to use the built-in logger (recommended) 22 - # windmark = { version = "0.1.14", features = ["logger"] } 22 + # windmark = { version = "0.1.15", features = ["logger"] } 23 23 24 24 # If you would like to use the built-in MIME dedection when `Success`-ing a file 25 25 # (recommended) 26 - # windmark = { version = "0.1.14", features = ["auto-deduce-mime"] } 26 + # windmark = { version = "0.1.15", features = ["auto-deduce-mime"] } 27 27 ``` 28 28 29 29 ### Implement a Windmark server
+8 -84
src/lib.rs
··· 16 16 // Copyright (C) 2022-2022 Fuwn <contact@fuwn.me> 17 17 // SPDX-License-Identifier: GPL-3.0-only 18 18 19 - //! # Windmark 20 - //! 21 - //! [![crates.io](https://img.shields.io/crates/v/windmark.svg)](https://crates.io/crates/windmark) 22 - //! [![docs.rs](https://docs.rs/windmark/badge.svg)](https://docs.rs/windmark) 23 - //! [![github.com](https://github.com/gemrest/windmark/actions/workflows/check.yaml/badge.svg?branch=main)](https://github.com/gemrest/windmark/actions/workflows/check.yaml) 24 - //! 25 - //! Windmark is an elegant and highly performant, async Gemini server framework 26 - //! for the modern age! 27 - //! 28 - //! ## Usage 29 - //! 30 - //! ### Add Windmark as a dependency 31 - //! 32 - //! ```toml 33 - //! # Cargo.toml 34 - //! 35 - //! [dependencies] 36 - //! windmark = "0.1.14" 37 - //! tokio = { version = "0.2.4", features = ["full"] } 38 - //! 39 - //! # If you would like to use the built-in logger (recommended) 40 - //! # windmark = { version = "0.1.14", features = ["logger"] } 41 - //! 42 - //! # If you would like to use the built-in MIME dedection when `Success`-ing a file 43 - //! # (recommended) 44 - //! # windmark = { version = "0.1.14", features = ["auto-deduce-mime"] } 45 - //! ``` 46 - //! 47 - //! ### Implement a Windmark server 48 - //! 49 - //! ```rust 50 - //! // src/main.rs 51 - //! 52 - //! use windmark::Response; 53 - //! 54 - //! #[windmark::main] 55 - //! fn main() -> Result<(), Box<dyn std::error::Error>> { 56 - //! windmark::Router::new() 57 - //! .set_private_key_file("windmark_private.pem") 58 - //! .set_certificate_chain_file("windmark_public.pem") 59 - //! .mount("/", Box::new(|_| Response::Success("Hello, World!".into()))) 60 - //! .set_error_handler(Box::new(|_| { 61 - //! Response::PermanentFailure("This route does not exist!".into()) 62 - //! })) 63 - //! .run() 64 - //! .await 65 - //! } 66 - //! ``` 67 - //! 68 - //! ## Examples 69 - //! 70 - //! Examples can be found within the 71 - //! [`examples/`](https://github.com/gemrest/windmark/tree/main/examples) directory. 72 - //! 73 - //! An example of a fully featured Gemini capsule written using Windmark can be 74 - //! found [here](https://github.com/gemrest/locus). This example Gemini capsule also 75 - //! happens to be the source code for [Fuwn's](https://github.com/Fuwn) (this 76 - //! library's author) personal Gemini capsule! 77 - //! 78 - //! ## Modules 79 - //! 80 - //! Modules are reusable extensions which can be procedurally mounted onto 81 - //! Windmark routers. 82 - //! 83 - //! [Add yours!](https://github.com/gemrest/windmark/edit/main/README.md) 84 - //! 85 - //! - [Windmark Comments](https://github.com/gemrest/windmark-comments) 86 - //! 87 - //! ## Capsules using Windmark 88 - //! 89 - //! [Add yours!](https://github.com/gemrest/windmark/edit/main/README.md) 90 - //! 91 - //! - <https://fuwn.me/> 92 - //! 93 - //! ## License 94 - //! 95 - //! This project is licensed with the 96 - //! [GNU General Public License v3.0](https://github.com/gemrest/windmark/blob/main/LICENSE). 97 - 98 19 #![feature(once_cell, fn_traits)] 99 20 #![deny( 100 - warnings, 21 + clippy::all, 22 + clippy::nursery, 23 + clippy::pedantic, 24 + future_incompatible, 101 25 nonstandard_style, 26 + rust_2018_idioms, 27 + unsafe_code, 102 28 unused, 103 - future_incompatible, 104 - rust_2018_idioms, 105 - unsafe_code 29 + warnings 106 30 )] 107 - #![deny(clippy::all, clippy::nursery, clippy::pedantic)] 31 + #![doc = include_str!("../README.md")] 108 32 #![recursion_limit = "128"] 109 33 110 34 pub mod handler;