Go to file
Stjepan Glavina a4515749a8 Lots of changes 2020-04-21 17:51:24 +02:00
examples Lots of changes 2020-04-21 17:51:24 +02:00
src Lots of changes 2020-04-21 17:51:24 +02:00
.gitignore Lots of changes 2020-04-21 17:51:24 +02:00
Cargo.toml Lots of changes 2020-04-21 17:51:24 +02:00
LICENSE-APACHE Add readme and licenses 2020-02-04 11:32:22 +01:00
LICENSE-MIT Add readme and licenses 2020-02-04 11:32:22 +01:00
README.md Lots of changes 2020-04-21 17:51:24 +02:00
certificate.pem Add certificate 2020-03-29 17:59:43 +02:00
identity.pfx Add certificate 2020-03-29 17:59:43 +02:00

README.md

smol

A small and fast async runtime in Rust.

https://discord.gg/5RxMVnr

Goals

  • Small - 1500 lines of code.
  • Simple - Well-documented, easy to maintain.
  • Fast - Based on [async-task], [crossbeam], and [piper].
  • Safe - Just 1 line of unsafe code for Windows support.
  • Portable - Linux, Android, macOS, iOS, Windows, FreeBSD, OpenBSD, NetBSD, DragonFly BSD.

Features

  • Async I/O - TCP, UDP, Unix domain sockets, and custom FDs/sockets.
  • Thread-local executor - For non-send futures.
  • Work-stealing executor - adapts to uneven workload.
  • Blocking executor - For files, processes, and standard I/O.
  • Timer - Efficient userspace timers.

Documentation

cargo doc --document-private-items --no-deps --open

TODO Crate recommendations

TODO certificate and private key

// To access the HTTPS version, import the certificate into Chrome/Firefox:
// 1. Open settings and go to the certificate 'Authorities' list
// 2. Click 'Import' and select certificate.pem
// 3. Enable 'Trust this CA to identify websites' and click OK
// 4. Restart the browser and go to https://127.0.0.1:8001
//
// The certificate was generated using minica and openssl:
// 1. minica --domains localhost -ip-addresses 127.0.0.1 -ca-cert certificate.pem
// 2. openssl pkcs12 -export -out identity.pfx -inkey localhost/key.pem -in localhost/cert.pem

Examples

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.