Asynchronous HTTP Client - Clojure - Changelog
Table of Contents
- 1. Release 1.3.1
- 2. Release 1.3.0
- 3. Release 1.2.0
- 4. Release 1.1.0
- 5. Release 1.0.1
- 6. Release 1.0.0
- 7. Release 0.6.1
- 8. Release 0.6.0
- 8.1. Modernize Clojure syntax with `:require` and `:refer` instead of `:use`
- 8.2. Update com.ning/async-http-client dependency to 1.8.16
- 8.2.1. Handle new options and refactoring of Cookie class with maximum BC
- 8.2.2. Return java.net.UnknownHostException instead of java.net.ConnectException (with UnresolvedAddressexception cause) on bad host
- 8.2.3. Add wrap? option to cookies
- 8.2.4. Return timeout and connection limit exceptions in `error` function instead of throwing an exception on request execution thread
- 8.2.5. Return java.nio.charset.Charsets on multipart parts
- 8.2.6. Default charset on StringPart (typically) is US-ASCII
- 8.2.7. Remove `raw-url` function -it is no longer supported by the underlying Java AsyncHttpclient
- 8.2.8. Add `uri` function to partially back fill for raw-url
- 8.2.9. Remove async connect functionality -connections are now always async
- 8.2.10. Handle empty HttpResponseBodyPart in onBodyPartReceived
- 9. Release 0.5.3
- 10. Release 0.5.2
- 11. Release 0.5.1
- 12. Release 0.5.0
- 13. Release 0.4.5
- 14. Release 0.4.4
- 15. Release 0.4.3
- 16. Release 0.4.2
- 17. Release 0.4.1
- 18. Release 0.4.0
- 19. Release 0.3.1
- 20. Release 0.3.0
- 21. Release 0.2.2
- 21.1. get-encoding helper works w/o Content-Type header
- 21.2. Upgrade async-http-client to v.1.5.0
- 21.3. Exposed more configuration options
- 21.4. Zero byte copy mode
- 21.5. Allow providing your own poll
- 21.6. Allow Asynchronous Connect
- 21.7. Fix seq streaming API
- 21.8. Lots of performance improvements
- 22. Release 0.2.1
- 23. Release 0.2.0
1 Release 1.3.1
1.1 Update dependencies
2 Release 1.3.0
2.1 Update documentation
2.2 Update tests
2.3 Update dependencies
2.4 Switch to lein-v for version management
3 Release 1.2.0
3.1 Update dependencies
3.1.1 Update async-http-client to 1.9.39 (fixes issue #74)
3.2 Fix bug when destructuring map (blocker for clojure.spec)
3.3 Add ability to configure read timeout
3.4 Allow request options to be passed for websockets
4 Release 1.1.0
4.1 Fix issue #69
4.2 Add support for asynchronous close
6 Release 1.0.0
6.1 Update to the latest version of AsyncHttpClient (1.9.31)
6.1.1 Remove `remove-params-on-redirect` option
No longer supported by the underlying AsyncHttpClient library and of dubious value.
6.1.2 Remove `async-connect` option
No longer supported by the underlying AsyncHttpClient library; all connections are performed asynchronously.
6.1.3 Overhaul character set handling for multipart functions
6.1.4 Use more precise exceptions
6.1.5 Move WebSocket implementation to its own namespace
6.2 Use more idiomatic Clojure
6.3 Extract websocket code to separate namespace
6.4 Issue with the AsyncHttpClient Java library.
See https://github.com/AsyncHttpClient/async-http-client/issues/996
To workaround, set a realm with
{:preemptive true :target-proxy true}
7 Release 0.6.1
7.1 Allow websocket to take request options enhancement
7.2 Add logging to client create/close calls
7.3 Update dependencies, including Clojure
8 Release 0.6.0
8.1 Modernize Clojure syntax with `:require` and `:refer` instead of `:use`
8.2 Update com.ning/async-http-client dependency to 1.8.16
8.2.1 Handle new options and refactoring of Cookie class with maximum BC
Add `expires`, `http-only?` and `wrap?` options to Cookie options
8.2.2 Return java.net.UnknownHostException instead of java.net.ConnectException (with UnresolvedAddressexception cause) on bad host
8.2.3 Add wrap? option to cookies
8.2.4 Return timeout and connection limit exceptions in `error` function instead of throwing an exception on request execution thread
8.2.5 Return java.nio.charset.Charsets on multipart parts
8.2.6 Default charset on StringPart (typically) is US-ASCII
8.2.7 Remove `raw-url` function -it is no longer supported by the underlying Java AsyncHttpclient
8.2.8 Add `uri` function to partially back fill for raw-url
8.2.9 Remove async connect functionality -connections are now always async
8.2.10 Handle empty HttpResponseBodyPart in onBodyPartReceived
With an empty response body, 1.8.0 calls onBodyPartReceived with a zero- length HttpResponseBodyPart, while version 1.7.x did not even call onBodyPartReceived.
9 Release 0.5.3
9.1 Update Clojure dependency to 1.6
9.2 Deprecate raw-url function and response key
Due to lack of support in future versions of the com.ning/async-http-client, raw-url will not be supported in future versions.
9.3 Restructure tests
9.3.1 Update jetty to 9.3.0.RC0
9.3.2 Update log dependencies
9.3.3 Provide fresh client to each test to resolve issue with Clojure 1.6
9.3.4 Fix brittle tests
9.4 Remove RequestBuilderWrapper
9.5 Update codox and lein-difftest plugins
10 Release 0.5.2
Compile with Java 1.6
11 Release 0.5.1
11.1 remove-params-on-redirect
Issues #46, #47 and #48 by Joseph Wilk.
11.2 Upgrade AHC to 1.7.10
12 Release 0.5.0
12.1 http.async.client/content-type
Added utility fn for Reading content-type.
12.2 http.async.client/redirect?
Added utility fn for checking if response Is redirect?.
12.3 http.async.client/location
Added utility fn for Reading location.
12.4 Moved to Leiningen 2
12.5 PATCH
Added support for HTTP PATCH method.
12.6 Initial WebSocket support
Not documented yet, Code is here. Demo usage can be found in hac-live dome for EuroClojure 2012. Request 12 and Request 13 are WebSocket examples.
12.7 Upgrade AHC to v1.7.5
13 Release 0.4.5
13.1 Multipart support
Allow POST and PUT to send multipart messages. When vector is provided as body it is treated as multipart. Please consult documentation and tests for examples of usage.
13.2 Add convenience url and raw-url
#35. Allow easy retrieval of URL used to request resource.
13.3 There's a function for that!
Listen to what kibit has to say.
14 Release 0.4.4
14.1 Simplified callbacks API
Issue #32.
14.2 Better documented callbacks
This was long outstanding issue #12.
14.3 Upgrade AHC to 1.7.4
14.4 Upgrade Clojure to 1.4
15 Release 0.4.3
15.1 Issue #30 by Cesar Canassa
Fixes issue with single cookie in response.
15.2 Upgrade AHC to 1.7.1
17 Release 0.4.1
17.1 Upgrade AHC to 1.7.0
17.2 Issues #26, #27, #28
- #26
- Justin Kramer, Brian Tatnall Empty response body hangs c/body, c/string
- #27
- Justin Kramer create-client's :idle-in-pool-timeout option not being set correctly
- #28
- Karsten Lang Documentation update
17.3 Improved logging
Improved logging configuration for running tests.
17.4 Tested against Clojure 1.4.0-beta1
18 Release 0.4.0
18.1 Clojure 1.3 compatible
18.2 Support for multiple values for same key (QString)
18.3 Clojure contrib independent
18.4 Upgrade async-http-client to v1.6.5
19 Release 0.3.1
19.1 Upgrade async-http-client to v1.6.4
20 Release 0.3.0
20.1 Upgrade async-http-client to v1.6.3
20.2 Control over preemptive authentication
Patch provided by xeqi.
20.3 Explicit client usage
Now following functions require client as first argument:
- GET
- PUT
- POST
- DELETE
- HEAD
- OPTIONS
- request-stream
- stream-seq
- execute-request
You still create client with create-client function.
20.4 Removed with-client macro
This didn't really bring much value. Migration path. From:
(with-client {:key val} ;; client usage (let [resp (GET url)]))
To:
(with-open [client (create-client :key val)] ;; client usage (let [resp (GET client url)]))
20.5 Clojure 1.2.1
Fixed cyclic dependency that was preventing http.async.client from been used in Clojure 1.2.1.
21 Release 0.2.2
21.1 get-encoding helper works w/o Content-Type header
21.2 Upgrade async-http-client to v.1.5.0
21.3 Exposed more configuration options
21.3.1 Timeouts
21.3.2 Proxy
21.3.3 Authentication
21.4 Zero byte copy mode
If sending File as body, zero byte copy is used.
21.5 Allow providing your own poll
Vadim Geshel contribution.
21.6 Allow Asynchronous Connect
Vadim Geshel contribution.
21.7 Fix seq streaming API
Previous versions of seq streaming API have been holding to head, not anymore.
21.8 Lots of performance improvements
Underlying async-http-client has undergone serious optimization changes.
22 Release 0.2.1
22.1 Terminate body seq if errored bug
22.2 Canceling request
http.async.client/cancel and http.async.client/canceled?
22.3 Request timeout
Per request configuration of request timeout in ms.
(GET url :timeout 100)
22.4 Close client
http.async.client/close.
(c/close) ;; or (c/close hac)
22.5 Upgrade to v1.3.2 of async-http-client
23 Release 0.2.0
23.1 Stream as seq
Response body can be seq, this allows for easy HTTP Stream handling. Documentation.
23.3 Authentication support
Basic and Digest from rfc2617 are supported. Documentation.
23.4 Proxy per request
Proxy can be specified per request. Documentation.
23.5 Branding User-Agent
Specifying User-Agent per client. http.async.client/create-client and http.async.client/with-client.
23.6 Keyworded maps in API
Like :options in http.async.client/GET.