All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
List all changes before release a new version.
- Rewrite HTTP Connection
- New Connection for Halite
- Proxy support
- Reuse connection
0.12.1 (2021-11-04)
- Reduce alloc too many memory. #108 (thanks @wolfgang371)
0.12.0 (2021-03-24)
- Compatibility with Crystal 1.0.
0.11.0 (2021-02-18)
Finally, the major version was out! Happy new year!
- [breaking changing] Drop file logging in favor of Crystal's Log. (removed
.logging(file: )
, use.logging(for: )
instead) #101 (thanks @oprypin) - Pre-read
TZ
environment value to convert timestamp's timezone during logging output. #102 - Crystal 0.34.x support.
0.10.9 (2021-02-01)
0.10.8 (2020-12-22)
0.10.7 (2020-12-08)
0.10.6 (2020-11-24)
0.10.5 (2020-04-15)
- Compatibility with Crystal 0.34.0.
0.10.4 (2019-09-26)
- Compatibility with Crystal 0.31.0.
0.10.3 (2019-08-12)
- Compatibility with Crystal 0.30.0.
0.10.2 (2019-06-24)
- Fixed Basic Auth creates bad headers in crystal 0.29.0. #73 (thanks @kalinon)
- Fixed use one shared options in multiple instanced
Halite::Client
. #72 (thanks @qszhu)
0.10.1 (2019-05-28)
- Fixed duplica query and backslash when reuse client. #67, #68 (thanks @watzon)
- Fixed no effect to call
logging(true)
method in Crystal 0.28. #69
0.10.0 (2019-05-20)
- Add
endpoint
chainable method, also add it as configuration option to reuse client. #66
0.9.2 (2019-05-20)
- Compatibility with Crystal 0.28.0
- Drop Crystal 0.25.x, 0.26.x, 0.27.x support.
0.9.1 (2019-01-14)
Minor typo fix (same as v0.9.0)
- Correct version both in
shard.yml
andversion.cr
. (thanks @matthewmcgarvey) - Update basic auth example in
README.md
. (thanks @matthewmcgarvey)
0.9.0 (2018-12-21)
New features with performance improved.
- Add streaming requests (feature to store binary data chunk by chunk) #53
- Add
user_agent
to Chainable methods. #55
- Fix overwrite the value with default headers when use
merge
ormerge!
method inHalite::Options
. #54
- Remove default headers in
Halite::Options
. - Move header
User-Agent
toHalite::Request
. - Change header
Connection
from "keep-alive" to "close" toHalite::Request
. - Remove header
Accept
.
0.8.0 (2018-11-30)
Compatibility with Crystal 0.27 and serious bugfix.
- [breaking changing] Rename
logger
tologging
,with_logger
towith_logging
. #52 - [breaking changing] Remove
logging
argument inHalite::Options.new
andHalite::Client.new
. #51 - [breaking changing] Remove
logging?
method inHalite::Options
, uselogging
method instead. #51 - Change
logging
behavior check if features is exists any class of superclasses isHalite::Logging
instead of given a Bool type. - Rename prefix
X-Cache
toX-Halite-Cache
in cache feature.
- Allow
timeout
method passed singleread
orconnect
method. - Add
merge!
anddup
methods inHalite::Options
. #51
- Fix duplice add "Content-Type" into header during request. #50
- Fix non overwrite value of headers use
Halite::Options.merge
method. #50 - Fix always overwrite and return merged option in a instanced class(session mode), see updated note in Session.
- Compatibility with Crystal 0.27
- Add specs with Crystal 0.25, 0.26 and 0.27 in Circle CI.
0.7.5 (2018-10-31)
- [breaking changing] Rename argument name
ssl
totls
inHalite::Client
/Halite::Options
/Halite::Chainable
.
- Fix new a
Halite::Client
instance with empty block returnNil
. #44
0.7.4 (2018-10-30)
- Fix typos in document and comments. #43 (thanks @GloverDonovan)
0.7.3 (2018-10-18)
- Fix json payloads with sub hash/array/namedtupled. #41 (thanks @fusillicode)
0.7.2 (2018-09-14)
Minor bugfix 🐛
- [breaking changing] Renamed
#to_h
to#to_flat_h
to avoid confict inHTTP::Params
extension. #39
- Fix cast from NamedTuple(work: String) to Halite::Options::Type failed with params/json/form. #38
0.7.1 (2018-09-04)
- Return empty hash for an empty named tuple.
- Fix send cookie during requesting in session mode. (thanks @megatux)
- Fix pass current options instead of instance variable.
- Fix move named tuple extension to src path.
0.7.0 (2018-09-03)
Features support 🎉
- [breaking changing] Change instance
Halite::Client
with block behavior. #33 - [breaking changing] Renamed argument name
adapter
toformat
in#logger
chainable method. - Move logger into features.
- Add features (aka middleware) support, you can create monitor or interceptor. #29
- Add cache feature. #24
- Add
#logging
in chainable method.
- Add misisng
#request
method with headers, params, form, json, raw, ssl arguments. - Fix do not overwrite default headers with exists one by using
Halite::Options.merge
. - Fix append response to history only with redirect uri. (thanks @j8r)
- Typo and correct words in README. (thanks @megatux)
0.6.0 (2018-08-24)
Improve performance with 🙈
- [breaking changing] Set
logger
to nil when instance aHalite::Options
, it throws aHalite::Error
exception if enablelogging
. - Change
Halite::Options
accepts argument inside. no effect for users. #27 - Wrap all exception class into a module, better for reading document.
- Fix always return
#
with#full_path
if fragment not exists inHalite::Request
. - Fix always overwrite with default headers with
#merge
inHalite::Options
- Compatibility with Crystal 0.26
0.5.0 (2018-07-03)
- New logger system and json logger support, see #19.
- [breaking changing] Change verb request behavior:
get
,head
only accepts#params
argument.post
,put
,delete
,patch
,options
accepts#params
,#form
,#json
and#raw
arguments.
0.4.0 (2018-06-27)
- [breaking changing] Remove
#mime_type
duplicate with#content_type
inHalite::Response
. - Change write log file use append mode by default, it could be change by param.
- Change logger formatter to easy identify category(request/response).
- Add #links to
Halite::Response
to fetch link headers. - Add #raise_for_status to
Halite::Response
. - Support multiple files upload. #14 (thanks @BenDietze)
- Add
#to_raw
toHalite::Response
to dump a raw of response. #15 (thanks @BenDietze) - Support
OPTIONS
method (crystal 0.25.0+) - Append write log to a file section to README.
- Stripped the filename in a
multipart/form-data
body. #16 (thanks @BenDietze) - Fix
#domain
inHalite::Request
with subdomain. #17 (thanks @007lva) - Create missing directories when use path to write log to a file.
0.3.2 (2018-06-19)
Compatibility with Crystal 0.25
0.3.1 (2017-12-13)
- Set
Options.default_headers
to be public method. - Accept tuples options in
Options.new
. - Accept
follow
/follow_strict
inOptions.new
. - Accept options block in
Options.new
. - Add logger during request and response (see usage).
- Alias method
Options.read_timeout
toOptions::Timeout.read
. - Alias method
Options.read_timeout=
toOptions::Timeout.read=
. - Alias method
Options.connect_timeout
toOptions::Timeout.connect
. - Alias method
Options.connect_timeout
toOptions::Timeout.connect=
. - Alias method
Options.follow=
toOptions::Timeout.follow.hops=
. - Alias method
Options.follow_strict
toOptions::Timeout.follow.strict
. - Alias method
Options.follow_strict=
toOptions::Timeout.follow.strict=
.
- Fix store Set-Cookies in response and set Cookies in request in better way.
- Fix cant not set connect/read timeout in
Options.new
. - Fix cant not overwrite default headers in
Options.new
. - Fix
Options.clear!
was not clear everything and restore default headers.
0.2.0 (2017-11-28)
HTTP::Headers#to_h
return string with each key if it contains one in array. (commit#e057c47c)
- Add
Response#mime_type
method. - Add
Response#history
method to support full history of redirections. (#8) - Add
Response#parse
method that it better body parser of response with json and write custom adapter for MIME type. (#9)
- Fix issue to first char of redirect uri is not slash(/). (#11)
- Fix raise unsafe verbs in strict mode.
0.1.5 (2017-10-11)
- Only store cookies in Sessions shards. (#7)
- Add
TLS/SSL
support (based on HTTP::Client.new(uri : URI, tls = nil)). - Add
UnsupportedMethodError/UnsupportedSchemeError
exceptions.
- Timeout with redirection. (#7)
- Compatibility with Crystal 0.24.0 (unreleased)
0.1.3 (2017-10-09)
- Always instance a new Options with each request in chainable methods.
- Add
accept
method.
- Fix
follow
(redirect uri) with full uri and relative path. - Fix always overwrite request headers with default values.
- Fix always shard same options in any new call. (it only valid in chainable methods)
- First beta version.