Releases: diznq/80s
Releases · diznq/80s
24H2 Release
- Add support for Unix domain sockets
- Add resolv DNS provider
- Add conditional MySQL transactions
- Add sleep & scheduled callbacks
- Improve HTTP client, so it reconnects on failure
- Improve
read_until
procedure for file descriptors - Improve
aiopromise<T>
to be move only - Improve code standards by using
present<T>
for coroutine parameters everywhere applicable - Fix undefined behaviors
24H1 Release
- Added HTTP client
- Added Resolv DNS client
- Added asynchronous thread-pooled executors (exec_async)
- Added asynchronous completion executors (create_task, complete_task)
- Added Gzip utility functions
- Added Actor Framework
- Fixed varstring implementation
- Fixed MySQL protocol implementation
Web Sockets
- Add support for Web Sockets using env::websocket_upgrade, env::websocket_read and env::websocket_write
- Fix race conditions in MySQL implementation which would happen when initial SQL query was specified
- Improve
dbgf
concept to take debugging level as the first argument
Varchars
90's Mail
90's SSL
New features:
- Add SSL layer for both client & server in 90's
- Add DKIM signatures for SMTP
- Add interworker communication via
s80_mail
API withS80_MB_MESSAGE
as type andon_message
handler - Add Lua bindings for interworker communication
Improvements:
- Make code C11 compatible with MSVC compiler that doesn't support VLA
- Make all Lua bindings safe by checking input arguments (net. bindings were unsafe before)
- Add documentation for 90's interfaces
- Improve escaping performance in 90's
- Rearchitect ownership of promises and file descriptors in 90's
- Add
operator*
,operator->
andexplicit operator bool()
for return structures of 90's APIs to prevent boilerplate code
Bug fixes:
- Fix bug in popen in Lua that made it impossible to read the data
- Fix query string parser in 90's
- Fix 90's template compiler to allow for recursive includes
90's ORM
90's framework
Add first version of the 90's C++ framework that builds on top of 80's
New features include:
- Template compiler for C++ that compiles webpages into pagelets
- HTTP server that automatically locates & loads pagelets
- Support for
main.so
"pagelet" that can initialize local context - SQL provider within global context
ABI refactor
- Crypto API was separated from Lua and is now accessible as generic plug-in module using
crypto.h
- Code is Clang compatible for C++ builds
- Automatic compiler detection inside the build
Mail exchange
- add SMTP client
- add SMTP server
- add mail server prototype
- add
S80_FD_SERVER_SOCKET
as special type for accepting sockets - add support for UDP connections
- add DNS module with
dns:get_ip(host_name, record_type)
method, useful for getting other thanA
records, i.e.get_ip("gmail.com", "MX")
- add
aio:connect2
method for quick and easy connection establishing and usingaiopromise<aiosocket>
as a return value - add
aio:set_dns(dns_provider)
method for overriding default DNS used foraio:connect2
, i.e.aio:set_dns(require("aio.lib.dns"))
to use async DNS - fixed issues mostly with SSL handshakes
- fixed documentation and type hints for several utility functions such as
aio:map
andaio:await