provides a simple way to host static or dynamic web content or spider basic apps
PB 6.03 - 6.20 windows
https://github.com/idle-PB/atomic_webserver_3
test site
https://atomicwebserver.com
version 3.1.0b15 6.03-6.20 uses PB TLS libs 6.20 or 6.03-6.12 uses the TLS Dlls
version 3.1.1b3 6.20 only uses native TLS but no reverse proxy
version 3.1.0b12 PB 6.12 reverse proxy working
version 3.1.1b1 PB 6.20 reverse proxy broken
version 3.1.0b9
Added TLS support to reverse proxy
version 3.1.0b7
build libreTLs 3.9.2 windows x86 tls.dll, ssl.dll, crypto.dll
fixed bug in tls.pbi that was preventing x86 to bind the tls context
version 3.1.0b6
fixed up receive to handle posts larger than buffer
version 3.1.0b5
moved the logging
fixed a time out bug in send
added cache age on init, uri handlers and preprocessed pages are un cached.
pages with .pbh or .htm are passed to the preprocessor
added option to SetCookie to create a session cookie with bRandom flag uses CryptRandomData sha2
version 3.1.0b3
fixed close connection on no data received
Version 3.1.0b2
Added the virtual file system, this is pretty much it feature wise and can now undergo refinements. The virtual file system will eventually be replaced with a streamlined version if and when time allows.
example of use is in single_server_localhost.pb repo has prepacked site in the .ezp
Version 3.0.10b1
Reverted to single threads per client as multiple request threads per client were getting into contention on linux and causing a high cpu load.
Version 3.0.9b1
Added TLS libreSSL
windows x86 / x64
linux x64
ssl_server.pb example shows how to use it.
v3.0.8b3
Added header fields and cookies
Request header fields are read via map *request\RequestHeaders()
you can also add additional client Response headers via Atomic_Server_SetResponceHeader(*request.Atomic_Server_Request,key.s,value.s)
Cookies are extracted and mapped to *client\Cookies()
you can set cookies in a callback via
Atomic_Server_SetCookie(*request.Atomic_Server_Request,Cookie.s,value.s)
The cookies are available in callbacks to GET POST URIHandlers and Preprocessor functions
v 3.0.8b2
added deflate support
v 3.0.8b1
added reverse proxy
examples
test site
v 3.0.7b1
Added Tag Preprocessor
no example of it as yet, as it assumes you have an html file with .pbh extension but it works fine
it calls runtime procedures so you can fill in content in an html file without the need for server side scripts
v 3,0,6b4
fixed thread clean up
v 3.0.6b3
changed scope of lock, increased buffer size
v 3.0.6b2
adjusted buffer size and redid mutex
v.3.0.6b
tarted up landing pages added chr function and favico
v.3.0.5b
rearranged a bit and added persistence for clients with timeout in preparation for SSL, clients can still spawn multiple threads, might add a thread pool later but it's still a dumb spawn a request thread so the servers can deal with multiple clients making multiple async requests.
v3.0.5a
bug fix, seems I was missing #PB_File_SharedRead on file access, despite being led on a wild goose chase

not to self make sure #PB_File_SharedRead is set on threaded file access.
v3,0.4b
removed internal windows.
v3.04a
changed so you can run multiple servers with IPV4 or IPV6
v3.0.3
added own window option
v3.0.3b
Added post support
with post and get callbacks
v3.0.2
Added Index and error handlers
v3.0.1
Added mime types
v3.0
Added URI handler currently only gets are supported
you add them as
URIHandlers("foo")\pt = @URIfoo()
and then you can navigate to
http://127.0.0.1/foo?foo=1234&bar=5678