Removed blank line
Added basic perforate benchmark
Merge branch 'master' into async
Moved async functions to their own namespace
Minor cleanup to <let?
Made the resource benchmark do marginally more work
Added type hints to remove reflection warnings
Added token impls of etag/last-modified to benchmark resource
Merged branch master into async
Renamed benchnark case names
Asynchronous resources now return a response whose body is a channel, rather than returning a channel directly. This makes it easier to work with other ring middleware etc.