Initial project import

This commit is contained in:
Agila Forge Importer committed 2026-07-13 15:20:32 +00:00
commit 23f2d29e32
11957 files changed
+1754577

No files matched your search

+56
View File
@@ -0,0 +1,56 @@
// vtest build: !solaris
import json
import picoev
import picohttpparser
const port = 8089
struct Message {
message string
}
@[inline]
fn json_response() string {
msg := Message{
message: 'Hello, World!'
}
return json.encode(msg)
}
@[inline]
fn hello_response() string {
return 'Hello, World!'
}
fn callback(_data voidptr, req picohttpparser.Request, mut res picohttpparser.Response) {
if req.method == 'GET' {
if req.path == '/t' {
res.http_ok()
res.header_server()
res.header_date()
res.plain()
res.body(hello_response())
} else if req.path == '/j' {
res.http_ok()
res.header_server()
res.header_date()
res.json()
res.body(json_response())
} else {
res.http_ok()
res.header_server()
res.header_date()
res.html()
res.body('Hello Picoev!\n')
}
} else {
res.http_405()
}
res.end()
}
fn main() {
println('Starting webserver on http://localhost:${port}/ ...')
mut server := picoev.new(port: port, cb: callback)!
server.serve()
}
+39
View File
@@ -0,0 +1,39 @@
// vtest build: !solaris
module main
import net
import picoev
const port = 8080
const http_response = 'HTTP/1.1 200 OK\r\nContent-type: text/html\r\nContent-length: 18\r\n\r\nHello from Picoev!'
fn main() {
println('Starting webserver on http://localhost:${port}/ ...')
mut pico := picoev.new(
port: port
raw_cb: handle_conn
)!
pico.serve()
}
fn handle_conn(mut pv picoev.Picoev, fd int, _events int) {
// setup a nonblocking tcp connection
mut conn := &net.TcpConn{
sock: net.tcp_socket_from_handle_raw(fd)
handle: fd
is_blocking: false
}
mut buf := []u8{len: 4096}
// read data from the tcp connection
conn.read(mut buf) or { eprintln('could not read data from socket') }
println('received data:')
println(buf.bytestr())
conn.write(http_response.bytes()) or { eprintln('could not write response') }
// remove the socket from picoev's event loop and close the connection
pv.close_conn(fd)
}