Go to file
Stjepan Glavina bc0acdd308
Merge pull request #10 from wusyong/as_fd
Add AsRawFd/RawSocket on types with trait bound of them
2020-04-21 08:29:22 -07:00
examples More comments 2020-04-20 17:45:14 +02:00
piper Add missing debug implementations 2020-04-19 20:02:40 +08:00
src Add AsRawFd/RawSocket on types with bound of them 2020-04-21 15:47:44 +08:00
.gitignore Lots of changes 2020-03-31 18:04:16 +02:00
Cargo.toml More docs 2020-04-19 23:29:40 +02:00
LICENSE-APACHE
LICENSE-MIT
README.md Update 2020-04-20 18:13:28 +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.

https://discord.gg/5RxMVnr

Goals

  • Small - Around 1500 lines of code.
  • Fast - On par with async-std and Tokio.
  • Safe - Written in 100% safe Rust.
  • Complete - Fully featured and ready for production.
  • Documented - Simple code, easy to understand and modify.
  • Lightweight - Small dependencies, relies on epoll/kqueue/wepoll.
  • Portable - Linux, Android, macOS, iOS, Windows, FreeBSD, OpenBSD, NetBSD, DragonFly BSD.

Features

  • Executor - Configurable threads, work stealing, supports non-send futures.
  • Blocking - Thread pool for isolating blocking code.
  • Networking - TCP, UDP, Unix domain sockets, and custom files/sockets.
  • Process - Spawns child processes and interacts with their I/O.
  • Files - Filesystem manipulation operations.
  • Stdio - Asynchronous stdin, stdout, and stderr.
  • 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.