Conversation
Do you think it would be possible to work on re-using as much code as possible? I think that would be a very good idea if we can make it work (because it’s going to happen eventually anyway). |
|
without overstepping this pr too much, maybe we can take this opportunity to think of a new way to group our compression stuff, both in terms of source and namespace ( |
|
As per Introducing New Modules policy, beware: |
|
cc @devongovett |
I managed to miss that, I can talk to the author but maybe this could be moved under a scope as brought up in nodejs/TSC#389 |
|
hey guys, I'm the owner of |
vsemozhetbyt
left a comment
There was a problem hiding this comment.
Doc part LGTM with some nits. Sorry for a big bunch of them)
And thank you!
| @@ -81,6 +81,10 @@ added: v9.6.0 | |||
|
|
|||
| Enable experimental ES Module support in the `vm` module. | |||
|
|
|||
| ### `--expose-brotli` | |||
|
|
|||
There was a problem hiding this comment.
Should we add metadata?
<!-- YAML
added: REPLACEME
-->
There was a problem hiding this comment.
I didn't know what I should put there so I just removed those. Should they just be set to like v10.x.x? Or I guess REPLACEME works too :)
There was a problem hiding this comment.
also with our pattern i think it should be --experimental-brotli
There was a problem hiding this comment.
If I recall correctly, REPLACEME has some part in build automation as a do-not-forget-to-replace guard)
| @@ -0,0 +1,404 @@ | |||
| # Brotli | |||
|
|
|||
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
doc/api/brotli.md
Outdated
There was a problem hiding this comment.
brotli APIs -> `brotli` APIs?
doc/api/brotli.md
Outdated
There was a problem hiding this comment.
http request -> HTTP request or `http` request?
doc/api/brotli.md
Outdated
| Error codes for decompression operations. | ||
|
|
||
| ## brotli.constants | ||
|
|
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
doc/api/brotli.md
Outdated
doc/api/brotli.md
Outdated
There was a problem hiding this comment.
If it can be a string, then buffer -> data here and below?
doc/api/brotli.md
Outdated
There was a problem hiding this comment.
Promise -> `Promise` or even {Promise} (will be linkified)?
Ditto below.
doc/api/brotli.md
Outdated
There was a problem hiding this comment.
Compress a chunk of data with [Compress][].
|
@vsemozhetbyt a few of the things you mentioned also apply to the zlib docs, those should probably be looked over sometime as well. |
doc/api/brotli.md
Outdated
doc/api/brotli.md
Outdated
doc/api/brotli.md
Outdated
There was a problem hiding this comment.
We usually sort bottom references in ASCII order, so this should go before the [`brotli/encode.h`]:.
There was a problem hiding this comment.
References below also need some resorting.
There was a problem hiding this comment.
Don't know how I managed to mess up sorting 😆
Yeah, our docs are far from ideal, but we are working on them) |
|
I will go ahead and create |
doc/api/brotli.md
Outdated
There was a problem hiding this comment.
I believe «Note: » prefixes were removed from the docs earlier in #18592.
Are those needed here?
|
@vsemozhetbyt thanks for the docs review! Hopefully I have fixed everything now. |
doc/api/brotli.md
Outdated
There was a problem hiding this comment.
If only eslint for vscode checked markdown too.
There was a problem hiding this comment.
Can eslint-plugin-markdown be of any help? We use it in CI and local linting.
Also, you can just run from the project root for linting code fragments in docs:
node tools/node_modules/eslint/bin/eslint.js --ext=.md doc
doc/api/brotli.md
Outdated
There was a problem hiding this comment.
If this intended to refer brotli.constants property (and not just "Constants" section), then this should be #brotli_brotli_constants.
I am unsure how this would be done for the C++ code, but it might be worth a shot for the JS. |
doc/api/brotli.md
Outdated
There was a problem hiding this comment.
I am not sure, but it seems a bit incomplete or confusing now. Maybe something like "and are simply ignored when inappropriate."?
There was a problem hiding this comment.
Something like "and invalid options are simply ignored" should also work.
Refs: nodejs#20458 Co-authored-by: Hackzzila <admin@hackzzila.com>
Refs: #20458 Co-authored-by: Hackzzila <admin@hackzzila.com> PR-URL: #24938 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Jan Krems <jan.krems@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Myles Borins <myles.borins@gmail.com> Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com> Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Refs: #20458 Co-authored-by: Hackzzila <admin@hackzzila.com> PR-URL: #24938 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Jan Krems <jan.krems@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Myles Borins <myles.borins@gmail.com> Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com> Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
|
This has been done in #24938! 🎉 |
Refs: nodejs#20458 Co-authored-by: Hackzzila <admin@hackzzila.com> PR-URL: nodejs#24938 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Jan Krems <jan.krems@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Myles Borins <myles.borins@gmail.com> Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com> Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Refs: nodejs#20458 Co-authored-by: Hackzzila <admin@hackzzila.com> PR-URL: nodejs#24938 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Jan Krems <jan.krems@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Myles Borins <myles.borins@gmail.com> Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com> Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Refs: #20458 Co-authored-by: Hackzzila <admin@hackzzila.com> Backport-PR-URL: #27681 PR-URL: #24938 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Jan Krems <jan.krems@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Myles Borins <myles.borins@gmail.com> Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com> Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Refs: #20458 Co-authored-by: Hackzzila <admin@hackzzila.com> Backport-PR-URL: #27681 PR-URL: #24938 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Jan Krems <jan.krems@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Myles Borins <myles.borins@gmail.com> Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com> Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>

Fixes: #18964
Adds brotli support to core. The brotli module must be enabled with
--expose-brotli. The api, and most of the source code, is almost identical to the zlib module.There are a few things that need polishing but I thought I would open this up for discussion.
/cc @MylesBorins
Checklist
make -j4 test(UNIX), orvcbuild test(Windows) passes