ZOMG IT WERKS
This commit is contained in:
parent
e1f02410ca
commit
2d0ce61654
4 changed files with 67 additions and 8 deletions
39
Cargo.lock
generated
Normal file
39
Cargo.lock
generated
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
# This file is automatically @generated by Cargo.
|
||||||
|
# It is not intended for manual editing.
|
||||||
|
version = 3
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bytes"
|
||||||
|
version = "1.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "fnv"
|
||||||
|
version = "1.0.7"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "herb"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"http",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "http"
|
||||||
|
version = "0.2.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "527e8c9ac747e28542699a951517aa9a6945af506cd1f2e1b53a576c17b6cc11"
|
||||||
|
dependencies = [
|
||||||
|
"bytes",
|
||||||
|
"fnv",
|
||||||
|
"itoa",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "itoa"
|
||||||
|
version = "0.4.8"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
|
|
@ -6,3 +6,4 @@ edition = "2018"
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
http = "0.2.4"
|
||||||
|
|
13
README.md
13
README.md
|
@ -6,16 +6,18 @@ This is a little fun experiment for me to mess around with Rust
|
||||||
|
|
||||||
## Chonklist
|
## Chonklist
|
||||||
I need this stuff to actually have a functioning but basic web server.
|
I need this stuff to actually have a functioning but basic web server.
|
||||||
[ ] Open a socket
|
[x] Open a socket
|
||||||
[ ] Recieve HTTP requests
|
[x] Recieve HTTP requests
|
||||||
[ ] Process said requests
|
[x] Process said requests
|
||||||
[ ] Send back HTTP requests
|
[x] Send back HTTP requests
|
||||||
|
[ ] Read pages from filesystem
|
||||||
|
|
||||||
### Next Chonklist
|
### Next Chonklist
|
||||||
The stuff I need to make it usable.
|
The stuff I need to make it usable.
|
||||||
[ ] Read pages from filesystem
|
|
||||||
[ ] Detect missing files and return 404
|
[ ] Detect missing files and return 404
|
||||||
[ ] Custom error pages
|
[ ] Custom error pages
|
||||||
|
[ ] User configurable
|
||||||
|
[ ] Make an actual header
|
||||||
|
|
||||||
### SUPAR Chonklist
|
### SUPAR Chonklist
|
||||||
Whatever is on here, just to make it extra spicy.
|
Whatever is on here, just to make it extra spicy.
|
||||||
|
@ -24,4 +26,3 @@ Whatever is on here, just to make it extra spicy.
|
||||||
[ ] Dynamic pages via CGI?
|
[ ] Dynamic pages via CGI?
|
||||||
[ ] Image thumbnailing/compression
|
[ ] Image thumbnailing/compression
|
||||||
[ ] Compressing big files
|
[ ] Compressing big files
|
||||||
[ ] Make it user configurable
|
|
||||||
|
|
22
src/main.rs
22
src/main.rs
|
@ -1,3 +1,21 @@
|
||||||
fn main() {
|
use std::io::{Write};
|
||||||
println!("Hello, world!");
|
use std::string;
|
||||||
|
use std::net::{TcpListener, TcpStream};
|
||||||
|
|
||||||
|
fn serve(mut stream: TcpStream) {
|
||||||
|
let contents = "<h1>herb works!</h1>";
|
||||||
|
let response = format!("{}{}", "HTTP/1.1 200 OK\r\n\r\n", contents);
|
||||||
|
stream.write(response.as_bytes()).unwrap();
|
||||||
|
stream.flush().unwrap();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fn main() -> std::io::Result<()> {
|
||||||
|
let listen = TcpListener::bind("127.0.0.1:8080")?;
|
||||||
|
|
||||||
|
for stream in listen.incoming() {
|
||||||
|
serve(stream?);
|
||||||
|
}
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue