diff --git a/CHANGELOG.md b/CHANGELOG.md index ab00c8c0..36082e2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +- 4.0.0 + - Remove `snappyer` from default dependency [PR#547](https://github.com/kafka4beam/brod/pull/547). + Starting from `kafka_protocol-4.0`, it no longer requires compression libraries as rebar dependencies. + Now `brod-4.0` has it removed too. + For more compression options, see [kafka_protocol/README](https://github.com/kafka4beam/kafka_protocol/blob/master/README.md#compression-support) + - 3.19.1 - Made brod-cli to work on OTP 26. [PR#582](https://github.com/kafka4beam/brod/pull/582) - `--ssl` option is now mandatory if TLS is to be used (previously it can be derived from `--cacertfile` option) diff --git a/README.md b/README.md index c5b178b6..2a0010ab 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Why "brod"? [http://en.wikipedia.org/wiki/Max_Brod](http://en.wikipedia.org/wiki - Pick latest supported version when sending requests to kafka. - Direct APIs for message send/fetch and cluster inspection/management without having to start clients/producers/consumers. - A escriptized command-line tool for message send/fetch and cluster inspection/management. -- Configurable compression library. `snappy` compression is supported by default. +- Configurable compression library. No compression is supported by default for both producers and consumers. For more compression options, see [kafka_protocol/README](https://github.com/kafka4beam/kafka_protocol/blob/master/README.md#compression-support) ## Building and testing @@ -114,6 +114,19 @@ two-level supervision trees. To use producers or consumers, you have to start at least one client that will manage them. +### Compression + +Brod does not dependent on any compression/decompression implementation by default. +To enable them, you must add the compression application as dependency in your project's rebar.config. + +For example: + +```erlang +{deps, [ + {snappyer, "1.2.9"} +]}. +``` + ### Start clients by default You may include client configs in `sys.config` have them started by default diff --git a/rebar.config b/rebar.config index c9ca8c2c..763e7fb4 100644 --- a/rebar.config +++ b/rebar.config @@ -1,6 +1,4 @@ -{deps, [ {kafka_protocol, "4.1.5"} - , {snappyer, "1.2.9"} - ]}. +{deps, [{kafka_protocol, "4.1.5"}]}. {project_plugins, [{coveralls, "~> 2.2.0"}, {rebar3_lint, "~> 3.2.5"}]}. {edoc_opts, [{preprocess, true}, {macros, [{build_brod_cli, true}]}]}. {erl_opts, [warnings_as_errors, warn_unused_vars,warn_shadow_vars,warn_obsolete_guard,debug_info]}. @@ -9,8 +7,9 @@ deprecated_functions]}. {profiles, [ {brod_cli, [ - {deps, [ {docopt, {git, "https://github.com/zmstone/docopt-erl.git", {branch, "0.1.3"}}} + {deps, [ {docopt, {git, "https://github.com/zmstone/docopt-erl.git", {tag, "0.1.3"}}} , {jsone, "1.7.0"} + , {snappyer, "1.2.9"} ]}, {erl_opts, [warnings_as_errors, {d, build_brod_cli}]}, {escript_name, brod_cli}, @@ -23,11 +22,12 @@ ]} ]}]}, {test, [ - {deps, [ {docopt, {git, "https://github.com/zmstone/docopt-erl.git", {branch, "0.1.3"}}} + {deps, [ {docopt, {git, "https://github.com/zmstone/docopt-erl.git", {tag, "0.1.3"}}} , {hut, "1.3.0"} , {jsone, "1.7.0"} , {meck, "0.9.2"} , {proper, "1.4.0"} + , {snappyer, "1.2.9"} , {snabbkaffe, {git, "https://github.com/kafka4beam/snabbkaffe.git", {branch, "1.0.10"}}} ]}, {erl_opts, [warnings_as_errors, {d, build_brod_cli}]} diff --git a/rebar.lock b/rebar.lock index 71217547..1a164513 100644 --- a/rebar.lock +++ b/rebar.lock @@ -1,14 +1,11 @@ {"1.2.0", [{<<"crc32cer">>,{pkg,<<"crc32cer">>,<<"0.1.8">>},1}, - {<<"kafka_protocol">>,{pkg,<<"kafka_protocol">>,<<"4.1.5">>},0}, - {<<"snappyer">>,{pkg,<<"snappyer">>,<<"1.2.9">>},0}]}. + {<<"kafka_protocol">>,{pkg,<<"kafka_protocol">>,<<"4.1.5">>},0}]}. [ {pkg_hash,[ {<<"crc32cer">>, <<"C6C2275C5FB60A95F4935D414F30B50EE9CFED494081C9B36EBB02EDFC2F48DB">>}, - {<<"kafka_protocol">>, <<"D15E64994A8CA99716AB47DB4132614359AC1BFA56D6C5B4341FDC1AA4041518">>}, - {<<"snappyer">>, <<"9CC58470798648CE34C662CA0AA6DAAE31367667714C9A543384430A3586E5D3">>}]}, + {<<"kafka_protocol">>, <<"D15E64994A8CA99716AB47DB4132614359AC1BFA56D6C5B4341FDC1AA4041518">>}]}, {pkg_hash_ext,[ {<<"crc32cer">>, <<"251499085482920DEB6C9B7AADABF9FB4C432F96ADD97AB42AEE4501E5B6F591">>}, - {<<"kafka_protocol">>, <<"C956C9357FEF493B7072A35D0C3E2BE02AA5186C804A412D29E62423BB15E5D9">>}, - {<<"snappyer">>, <<"18D00CA218AE613416E6EECAFE1078DB86342A66F86277BD45C95F05BF1C8B29">>}]} + {<<"kafka_protocol">>, <<"C956C9357FEF493B7072A35D0C3E2BE02AA5186C804A412D29E62423BB15E5D9">>}]} ]. diff --git a/src/brod.app.src b/src/brod.app.src index ccee3f48..656fb22a 100644 --- a/src/brod.app.src +++ b/src/brod.app.src @@ -3,7 +3,7 @@ [{description,"Apache Kafka Erlang client library"}, {vsn,"git"}, {registered,[]}, - {applications,[kernel,stdlib,kafka_protocol,snappyer]}, + {applications,[kernel,stdlib,kafka_protocol]}, {env,[]}, {mod, {brod, []}}, {modules,[]},