Liking cljdoc? Tell your friends :D


  • Add initial kondo support
  • Upgrade to Netty 4.1.85.Final
  • Add options to configure graceful shutdown timeout
  • Switch from custom deps.edn script to lein2deps
  • Upgrade CircleCI Docker images
  • Move bouncycastle to dev profile for REPL testing
  • Add CONTRIBUTING doc for newcomers
  • Add support for deps.edn/tools.deps
  • Improve wrap-future short-circuiting behavior of realized error futures
  • Fix bug treating a ClosedChannelException during an SSL/TLS handshake as a success deferred
  • Support replacing Dirigiste connection pools with custom pools
  • Improve options for setting up SSL/TLS. Now accepts a map for options, and See ssl-server-context.
  • Support custom error handlers
  • Support HttpObjectAggregator on the Netty pipeline
  • Log less info on SSL/TLS handshake failure
  • BREAKING: If epoll is missing, setting :epoll? true will now be an error instead of automatically downgrading. To get the old behavior, pass :epoll? (aleph.netty/epoll-available?).
  • Make TCP+SSL server call handler only after successful SSL handshake, and improve SSL errors
  • Clarified idle-timeout docstring

Contributions by (in alphabetical order):

Anthony Bondarenko, Michiel Borkent, Matthew Davidson, Balint Erdos, Arnaud Geiser, Moritz Heidkamp, Alexey Kachayev, Pierre-Yves Ritschard, Andrew Rudenko, saguywalker, and Alexander Yakushev


  • Add initial clj-kondo hooks
  • Minor bugfix in examples code
  • Add pipeline-transform test
  • Add missing type hint in websocket-server-handler
  • Correctly handle too large headers/URIs
  • Add doc for undocumented response-executor parameter
  • Minor bugfix for keep-alive? false
  • Fixed major memory leak when sending InputStreams
  • Fixed bug when sending empty files
  • Fix returned filename in multipart uploads for clj-http parity
  • Ensure client exceptions handled and channel closed on invalid input
  • Fix minor bug with redirects and :method key
  • Fix bug in idle state timeouts
  • Disable misleading logs during tests
  • Switch to Netty's FastThreadLocalThread for threads
  • Ensure wrap-future callbacks have thread bindings and a full classloader chain
  • Fix minor reflection warning in HttpContentCompressor ctor
  • Add missing direct dependency on Dirigiste

Contributions by Arnaud Geiser, Moritz Heidkamp, Erik Assum, Ivar Refsdal, and Matthew Davidson


Contributions by (in alphabetical order):

Erik Assum, Yoan Blanc, Reynald Borer, Michael Cameron, Jonathan Chen, Daniel Compton, Matthew Davidson, Rafal Dittwald, Ganesh Gautam, Aaron Muir Hamilton, Moritz Heidkamp, Alexey Kachayev, Dominic Pearson, Matthew Phillips, Denis Shilov, Zach Tellman, Mark Wardle, and Alexander Yakushev


  • Bumped up Netty to 4.1.65.Final for a regression
  • Added javac options to force 1.8-compatible classes


  • Fixed regression compiling for later Java 17


  • Remove unused Travis config
  • Remove test dependency on /usr/share/dict/words
  • Remove 1.7-specific java options
  • Fix SSL self-generated cert test
  • Update cljdoc badge
  • Add URL to project.clj


  • Bump byte-streams version
  • Update .gitignore for clj-kondo and lsp


  • Update dependencies.


  • Moving to newer netty 4.1.64.Final
  • Extract dns-resolver-group builder code into a separate function (#564)
  • [Fixes #561] Fix websocket-upgrade-request? for Firefox. (#562)
  • Update
  • Circleci project setup (#554)
  • Update
  • Add badges


  • Avoid NullPointerException if optional timeout omitted. (#551)
  • Derive part-name from filename (when necessary) to improve compatibility between multipart interfaces, resolves #519
  • Remove logic around "Proxy-Connection: Keep-Alive" header, RFC 7230, A.1.2 defines header as obsolete
  • Optimize HTTP request baking by pre-computing static settings (e.g. proxies) when setting up the connection
  • Avoid duplicating query params when using proxy (#548)
  • Upgrade dependencies to the latest versions, new alpha tag (alpha5 -> alpha6)
  • Define SSL connection pool before executing request
  • Update LICENSE file to be consistent with README
  • Improve raw-stream example
  • Handle 308 Permanent Redirect (same behaviour than for 307)
  • Add license
  • Properly initialize per-message deflate handshaker for websocket server, covers #494 (#506)
  • Helper to extract SSL session from the request (#505)
  • Support WebSocketChunkedInput in websockets (#503)
  • Support raw streams for text websockets (#502)
  • Accurate processing for proxy connection exception (#509)
  • 100-Continue handler (#482)
  • Upgrade Netty to 4.1.36.Final (#507)
  • Use shared instance of logging handler for the connection pool (#495)
  • http/file API to send region of the file (#485)
  • Use Epoll datagram channel for DNS resolver group when running on Epoll (#477)
  • Show the server's channel when printing AlephServer object (#491)
  • Get rid of deprecated HttpHeaders methods (#497)
  • Bump to Netty 4.1.34.Final (#496)
  • WebSocket connection to expose more information about handshake result (#498)
  • Fine-grained websocket close handshake API (#481)
  • Carefully release buffers when processing websocket client stream (#490)
  • Add more aggressive leak detection to all tests


  • Fix ExceptionInInitializerError in reified GenericFutureListener (#425)
  • Carefully release ByteBuf when processing WebSocketFrame (#430)
  • Avoid releasing non-reference counted body (#437)
  • Minor fixes in client_middleware.clj (#429)
  • Use defonce to prevent rebinding of thread locals (#438)
  • Do not call address types setter for DNS resolver with NULL to stick to defaults, fixes #467 (#468)
  • Support manual ping/pong messages over websocket connections (#364)
  • Bump to Netty 4.1.33.Final (#464)
  • Fix reflection warning calling (#436)
  • Async Ring handlers wrapper (#442)


  • Bump to Netty 4.1.32.Final (#433)
  • Switch to use thread factory from manifold.executor (#426)
  • Use a better workaround for Compojure, fixes #424
  • Modify client/client-handler to support HttpObjectAggregator (#393)
  • Multipart decoder (#411)
  • Target latest dependencies, mark 0.4.7-alpha3
  • Added ssl-option for WebSocket client (#419)
  • Add :manual-ssl? option to HTTP start-server. (#423)
  • Handle WS handshake exceptions


  • Bump to Netty 4.1.30.Final
  • Make sure our post-websocket upgrade 'response' is always nil in the examples
  • Target latest netty version, and clean up SSL tests
  • Examples: update the deps
  • Mentioned DNS, outlined specific differences in the API
  • Use built-in ChannelInitializer to build pipeline when Channel is registered
  • Remove unused netty/HeaderMap declaration
  • Remove assert as we know that we always have chuncked writer in our pipeline
  • Mark aleph.http.multipart/encode-body as deprecated
  • File upload to support manually specified charset
  • Support binary content parts and custom charsets
  • Cleaning up code from client connection handling
  • Test case to actually send multipart request to the server
  • If multipart encoder didn't claim the content being chunked, we're safe to send nothing
  • Permanently added ChunkedWriteHandler to deal with potential multipart upload
  • Netty's multipart encoder may return either full request or chunked stream
  • Close context instead of channel to short-circuit event propagation
  • Update README file to mention support for multipart, cookie stores and proxy
  • Fix response executor affinity test case
  • Test case to cover :save-request? option
  • Update formatting for future-with call
  • Fix imports
  • Support custom date header
  • Reimplemt :save-request internals to save Netty's HttpMessage
  • Slightly better description for the :log-activity option
  • Introduce :log-activity configuration for connection to enable logging
  • Fisrt attempt to introduce :save-request? option into the client
  • Get rid of depricated SslContext methods
  • Get rid of the hack with PluggableDnsAddressResolverGroup
  • Simplified tests using map-indexed
  • Pipeline initializer is effectively inbound handler, removed redundant event
  • Get rid of Netty's deprecated methods from http/server
  • Get rid of deprecated Netty methods from http/core
  • coerce-element helper for streaming body does not need netty channel as it does not perform allocation
  • Make sure an empty "Set-Cookie" response header doesn't crash default middleware
  • Allow to set log4j2 logger
  • Remove Netty deprecated methods usage in aleph.http.client ns
  • Fix typo and remove unused namespaces
  • Document follow-redirects? as the handler provides extra options


  • fix #391, mark 0.4.7-alpha1


Thanks to Alexey Kachayev, Yoan Blanc, Christian Karlsen, Jeremie Grodziski

  • Add support for WebSocket PING frames
  • Add support for cookies in HTTP client
  • Add :dns-resolver option for all client protocols
  • Add proxy support for HTTP client


Thanks to Antony Woods, Alexey Kachayev, Ivan Kryvoruchko, Yonatan Elhanan, Daniel Truemper

  • fix memory lead in handling of binary websocket frames
  • fix handling of decoder errors in Netty's HTTP stack


Thanks to Dominic Monroe

  • fix bug in client ssl-context creation


Thanks to Zak Kristjanson, Elana Hashman, Casey Marshall, Jeroen van Dijk, Cameron Desautels, Leon Mergen, Ryan Waters, Nate Young, and Martin Klepsch

  • allow for :ssl-context to be defined for clients
  • add aleph.netty/ssl-client-context, and basic example of SSL configuration
  • add websocket close status and message to stream description
  • match nested query param behavior in clj-http
  • target manifold 0.1.6
  • make all threads daemon by default
  • add aleph.netty/wait-for-close method, to prevent the process from closing prematurely


  • altered shape of for Netty sources and sinks
  • made instrumentation of individual connections optional, as it was having a small but measurable performance impact around ~100k connections
  • target manifold 0.1.4, byte-streams 0.2.2


  • from scratch rewrite, too many changes to name

Can you improve this documentation? These fine people already did:
Matthew Davidson, Zach Tellman, Moritz Heidkamp, valerauko & ztellman
Edit on GitHub

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close