### 1.2.2
- Added Cabal constraint *resolv > 0.2.0.1* to fix memory leaks in module
*NgxExport.Tools.Resolve*.
### 1.2.1
- Improvements and bug fixes in module *NgxExport.Tools.Resolve*.
+ Added ability to set response timeout in service *collectUpstreams*.
+ Use *handleAny* from *safe-exceptions* in service *collectUpstreams*.
+ Improved type declarations and documentation.
### 1.2.0
- Added module *NgxExport.Tools.Resolve* which can be used to manage service
discovery in Nginx dynamic upstreams.
### 1.1.0
- Using *Network.HTTP.Client.BrReadWithTimeout* in module
*NgxExport.Tools.Subrequest* to ensure that a request won't stall on a bad
response from a buggy server.
- In module *NgxExport.Tools.Subrequest*, *srBody* was reimplemented using lazy
bytestrings.
### 1.0
- Module *NgxExport.Tools.Aggregate* can now be built without support from the
*Snap framework* (flag *SnapAggregateServer* replaces flag *Aggregate*). The
module now allows building native Nginx-based aggregate services (see updated
docs).
- In module *NgxExport.Tools.Aggregate*, getting current time with *ngxNow* was
replaced by *getCurrentTime* because the former is not safe in the async
context.
- Removed upper bound restriction in the Cabal constraint on the version of
package *aeson*.
- Package stability tag was promoted to stable.
### 0.8.2.0
- In module *NgxExport.Tools.Subrequest*, bridged HTTP subrequests return status
code of the source end of the bridge when it returns a *non-2xx* response.
### 0.8.1.0
- In module *NgxExport.Tools.Subrequest*, bridged HTTP subrequests were added.
- In module *NgxExport.Tools.Subrequest*, configured subrequest headers now get
merged with originally set request headers.
- Added Cabal constraint *aeson < 2.0.0.0* for building EDE module.
### 0.8.0.0
- Added module *NgxExport.Tools.PCRE*, this requires *nginx-haskell-module*
*2.8.4* or newer.
### 0.7.0.0
- Added module *NgxExport.Tools.ServiceHookAdaptor* to maintain custom global
data in all the worker processes in run-time.
### 0.6.2.0
- Added Cabal flag *Aggregate* to build module *NgxExport.Tools.Aggregate*
conditionally.
### 0.6.1.0
- Handler *extractRequestStatusFromFullResponse* was replaced with handler
*extractExceptionFromFullResponse*. The new handler extracts the error message
if the subrequest was terminated by an exception.
### 0.6.0.0
- Build EDE module with *prettyprinter* automatically.
### 0.5.9.0
- Allow Unix domain sockets in configurations of internal HTTP subrequests.
### 0.5.8.0
- Using *Data.HashSet* for *pcGauges* and *pcScale1000* in Prometheus metrics.
### 0.5.7.0
- Show histogram *error* counters in parameterized Prometheus metrics.
### 0.5.6.2
- Fixed wrong partitioning of gauges and counters from *special* counters.
### 0.5.6.0
- Added labeled parameterization for all supported types of metrics by using
annotated counters from
[*nginx-custom-counters-module*](https://github.com/lyokha/nginx-custom-counters-module).
### 0.5.5.0
- Added content handler *prometheusMetrics*.
- Using lazy text for encoding Prometheus metrics.
### 0.5.4.0
- Added handler *extractRequestStatusFromFullResponse* to retrieve completion
status of a subrequest.
### 0.5.3.0
- Handlers *makeSubrequestFull* and *makeSubrequestFullWithRead* no longer throw
errors on responses with HTTP statuses other than *2xx*.
- Implemented forwarding responses downstream to the client with function
*contentFromFullResponse* and content handler *fromFullResponse*.
### 0.5.2.0
- Added handlers to extract data from lists of values in the Prometheus module.
### 0.5.1.0
- Added gauge metrics type to Prometheus counters.
### 0.5.0.0
- Added module *NgxExport.Tools.Prometheus* to convert custom counters from
[*nginx-custom-counters-module*](https://github.com/lyokha/nginx-custom-counters-module)
to Prometheus metrics.
### 0.4.1.0
- Handler *renderEDETemplateFromFreeValue* was moved from the example to the
module.
### 0.4.0.0
- Implemented adjustable response timeouts.
- Implemented subrequest handlers with ability to extract full response data.
### 0.3.2.0
- Functions and handlers *subrequest* and *subrequestWithRead* were renamed to
*makeSubrequest* and *makeSubrequestWithRead* respectively.
### 0.3.1.0
- Added function *subrequestWithRead* and an asynchronous variable handler of
the same name.
### 0.3.0.0
- Added module *NgxExport.Tools.Subrequest* for making HTTP (sub)requests
easily.
### 0.2.2.0
- Added Cabal flag *EDE* to detect automatically if EDE module can be built.
- Added manual Cabal flag *ExperimentalEDE* to compile against patched *ede*
package where package *ansi-wl-pprint* was replaced with *prettyprinter*.
- The EDE example was enhanced to show how to parse free JSON values.
### 0.2.1.0
- Improved treatment of quoted string values in *b64* and *uenc* EDE filters.
- Added function *renderEDETemplateWith* for templating from any configuration
language which is translatable to *Aeson*'s *Value*.
### 0.2.0.0
- Added module *NgxExport.Tools.EDE* for parsing JSON values.
### 0.1.0.1
- Docs improved (using *strict variable handlers* from the latest
*nginx-haskell-module* in the example).
### 0.1.0.0
- Initial version.