I’m happy to announce the RC of a new Copas release, the first in 3 years.
Copas is a dispatcher based on coroutines that can be used for asynchroneous networking. For example TCP or UDP based servers. But it also features timers and client support for http(s), ftp and smtp requests. It uses LuaSocket as the interface with the TCP/IP stack and LuaSec for ssl support.
Though the version increment 2.0 to 2.1 might seems like a minor release, it is packed with new features. Most notably the support for timeouts on socket operations.
Please try the new release and report any issues.
Installation is as simple as: "luarocks install copas --dev"
Github repo: https://github.com/keplerproject/copas
Fixed: coxpcall dependency in limit.lua #63 (Francois Perrad)
Fixed: CI now generates the certificates for testing, on unix make can be used, on Windows generate them manually
Fixed: type in wrapped udp:setpeername was actually calling udp:getpeername
Fixed: default error handler didn't print the stacktrace
Fixed: small memory leak when sleeping until woken
Fixed: do not wrap udp:sendto() method, since udp send doesn't block
Change: update deprecated tls default to tls 1.2 in (copas.http)
Change: performance improvement in big limit-sets
Change: copas.loop() now takes an optional initialization function
Added: timer class, see module "copas.timer"
Added: lock class, see module "copas.lock"
Added: semaphore class, see module "copas.semaphore"
Added: copas.removethread() added to be able to forcefully remove a previously added thread
Added: option to override the default errorhandler, and fixes to the handler
Added: timeout interface copas.timeout()
Added: copas.settimeout() so Copas can manage its own timeouts instead of spinning forever