All Projects → OctaneWeb → Octane

OctaneWeb / Octane

Licence: mit
A web server modeled after express in Rust.

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Octane

Kvantum
An intellectual (HTTP/HTTPS) web server with support for server side templating (Crush, Apache Velocity and JTwig)
Stars: ✭ 17 (-87.5%)
Mutual labels:  webserver, https, http-server
Criollo
A powerful Cocoa web framework and HTTP server for macOS, iOS and tvOS.
Stars: ✭ 229 (+68.38%)
Mutual labels:  https, http-server, webserver
Libhv
🔥 比libevent、libuv更易用的国产网络库。A c/c++ network library for developing TCP/UDP/SSL/HTTP/WebSocket client/server.
Stars: ✭ 3,355 (+2366.91%)
Mutual labels:  https, http-server, webserver
Beetlex
high performance dotnet core socket tcp communication components, support TLS, HTTP, HTTPS, WebSocket, RPC, Redis protocols, custom protocols and 1M connections problem solution
Stars: ✭ 802 (+489.71%)
Mutual labels:  https, http-server, webserver
Nico
A HTTP2 web server for reverse proxy and single page application, automatically apply for ssl certificate, Zero-Configuration.
Stars: ✭ 43 (-68.38%)
Mutual labels:  http-server, webserver
Embedio
A tiny, cross-platform, module based web server for .NET
Stars: ✭ 1,007 (+640.44%)
Mutual labels:  http-server, webserver
Watsonwebserver
Watson is the fastest, easiest way to build scalable RESTful web servers and services in C#.
Stars: ✭ 125 (-8.09%)
Mutual labels:  https, http-server
Jennet
A simple HTTP web framework written in Pony
Stars: ✭ 72 (-47.06%)
Mutual labels:  http-server, webserver
Caddy
Matthew Holt began developing Caddy in 2014 while studying computer science at Brigham Young University. (The name "Caddy" was chosen because this software helps with the tedious, mundane tasks of serving the Web, and is also a single place for multiple things to be organized together.) It soon became the first web server to use HTTPS automatically and by default, and now has hundreds of contributors and has served trillions of HTTPS requests.
Stars: ✭ 35,966 (+26345.59%)
Mutual labels:  https, http-server
Titanium Web Proxy
A cross-platform asynchronous HTTP(S) proxy server in C#.
Stars: ✭ 1,122 (+725%)
Mutual labels:  https, http-server
Cheroot
Cheroot is the high-performance, pure-Python HTTP server used by CherryPy. Docs -->
Stars: ✭ 128 (-5.88%)
Mutual labels:  https, http-server
Katwebx
An extremely fast static web server and reverse proxy for the modern web.
Stars: ✭ 39 (-71.32%)
Mutual labels:  https, webserver
Fht2p
A cross-platform HTTP static file server developed using Rust.
Stars: ✭ 28 (-79.41%)
Mutual labels:  https, http-server
Qtwebapp
QtWebApp is a HTTP server like Java servlets, written in C++ with the Qt framework.
Stars: ✭ 50 (-63.24%)
Mutual labels:  https, http-server
Go Bootstrap
Easy way to bootstrap a web server in Go (Routing|Middleware|Https)
Stars: ✭ 27 (-80.15%)
Mutual labels:  https, http-server
Merecat
Small and made-easy HTTP/HTTPS server based on Jef Poskanzer's thttpd
Stars: ✭ 69 (-49.26%)
Mutual labels:  https, http-server
Pric
Simple zero-config tool to create Private Certificate Authority & issue locally-trusted development server certificates with any domain names you'd like. SSL certificates for development purposes.
Stars: ✭ 87 (-36.03%)
Mutual labels:  https, webserver
Igropyr
a async http server base on libuv for Chez Scheme
Stars: ✭ 85 (-37.5%)
Mutual labels:  http-server, webserver
Proxy.py
⚡⚡⚡Fast, Lightweight, Pluggable, TLS interception capable proxy server focused on Network monitoring, controls & Application development, testing, debugging
Stars: ✭ 1,291 (+849.26%)
Mutual labels:  http-server, webserver
Fenix
A simple and visual static web server with collaboration features.
Stars: ✭ 1,559 (+1046.32%)
Mutual labels:  https, http-server

Octane 🚀

A high-powered web server aimed at minimizing dependencies while maintaining speed. Modeled after Express, a popular Javascript web framework, Octane combines the speed of Rust with the ease-of-use and flexibility of Express to create the optimal user experience.

  • Multithreaded 🚄
  • Asynchronous design 🐆
  • Easy to use, intuitive design 🌱
  • TLS enabled, rustls/openssl ready 🔒
  • Minimal dependencies (working to reduce them more!) 💕

Not production ready

The web server is not production ready yet, there are many things left to do before we are production ready. Use at your own risk! Development is being done right now, lots of things are untested in the library. If you would like to report any details, use issues or the chat!

Basic Usage

Create an octane instance, and then you can register your methods on it using app.METHOD()

use octane::prelude::*;
use std::error::Error;

#[octane::main]
async fn main() -> Result<(), Box<dyn Error>> {
    let mut app = Octane::new();
    app.ssl(8001)
        .key("templates/key.pem")
        .cert("templates/cert.pem"); // Setup ssl

    app.get(
        "/",
        route!(|req, res| {
            res.send_file("templates/test.html").expect("File not found!");
            Flow::Next
        }),
    )?;

    app.add(Octane::static_dir(path!("/templates/")))?;
    app.listen(8000, || println!("Server Started!")).await
}

Docs

Documentation will be available on docs.rs.

Roadmap to production

  • [ ] Http2
  • [ ] Stable SSL support
  • [ ] Efficient error handling (using enums instead of Box<dyn Error>)
  • [ ] Web socket library
  • [ ] Multipart/json form handling (being worked on)
  • [ ] Logging
  • Much more....

Contribute

Checkout CONTRIBUTING.md for info on how to contribute to this project

License

OctaneWeb/Octane is licensed under the MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].