Operation request: add support for brotli (de)compression
- Dominant language
- JavaScript
- Stars
- 35.8k
- Forks
- 4.1k
- Avg merge
- 2d 26m
- Merged PRs (30d)
- 33
Description
## Summary
now that node 10 has brotli compression out of the box it would be awesome if added.
Thanks
### Example Input
for **compression**
```
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer non justo nibh. Aenean nisl nulla, lacinia in nunc eu, fringilla gravida massa. Proin congue leo risus, in aliquet tellus elementum vel. Nam quis lacus sed mauris tempus cursus. Sed dapibus est neque, in tristique leo dapibus sed. Donec eu sollicitudin erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec sed eros enim. Nulla tempor, odio nec porttitor pulvinar, turpis nisl fringilla lorem, et tincidunt justo lacus id tellus. Donec tincidunt venenatis feugiat. Mauris dictum lectus tincidunt fermentum hendrerit. Etiam feugiat in risus at feugiat. Suspendisse leo mi, tincidunt eu molestie id, fermentum id odio. Nullam lorem augue, ultricies eget dignissim vel, pulvinar nec nulla.
```
for **decompression**
```
GyIDABwHjutcnBZfOsYohRWICGjLzbODmz6Cw1QkQkEoHNbmDKf1shvHnSr9XoLoC3TwpuoAoHvtH58NA5x5dGkHLKA4T7d5J/RImOYm5dfmI1cXeKJWt/9QOCFLs3nioSM160ImD2PQH6gx+8f3hcfh9oMb7s+v29RVHO4weM2k+TToFNDh9QGt5h36QzPBM/LnFCxFSHdN6BjxpxTGxnVUNHaI8S1NJGYVAOMltfDHuqWFtwyYRgWCiaW6DCTrVGD0RkV3MzF1+KmARsJ5S4MMOYwcLYxtVwSz/+hMOqCFiBkHsyYdeiV7j+7JeRvB1GASkb0db0EmzLmvQPHeEpLDxYjXhwJP5JW2zkEfenIHfl7qojtiEwUTendAnatbNZPU4H2bTG5YaqhfLeMR4NT+dLnN33sYoATBXTPmbxoSaR+c5UmkAGDICbR4CNSU6o+rSzLwpR5KdifU8PTIWjDUdeyKv1yuoB8+r17OZU/LchOBTjUGSdf+3Zs2YgQn+HKTv1pYMY2kgrNF8jlhEaEyVsIFpB6mSWt5OagBfTQx/TgjWEd2w66CMyrY6wE=
```
### Example Output
for **compression**
```
GyIDABwHjutcnBZfOsYohRWICGjLzbODmz6Cw1QkQkEoHNbmDKf1shvHnSr9XoLoC3TwpuoAoHvtH58NA5x5dGkHLKA4T7d5J/RImOYm5dfmI1cXeKJWt/9QOCFLs3nioSM160ImD2PQH6gx+8f3hcfh9oMb7s+v29RVHO4weM2k+TToFNDh9QGt5h36QzPBM/LnFCxFSHdN6BjxpxTGxnVUNHaI8S1NJGYVAOMltfDHuqWFtwyYRgWCiaW6DCTrVGD0RkV3MzF1+KmARsJ5S4MMOYwcLYxtVwSz/+hMOqCFiBkHsyYdeiV7j+7JeRvB1GASkb0db0EmzLmvQPHeEpLDxYjXhwJP5JW2zkEfenIHfl7qojtiEwUTendAnatbNZPU4H2bTG5YaqhfLeMR4NT+dLnN33sYoATBXTPmbxoSaR+c5UmkAGDICbR4CNSU6o+rSzLwpR5KdifU8PTIWjDUdeyKv1yuoB8+r17OZU/LchOBTjUGSdf+3Zs2YgQn+HKTv1pYMY2kgrNF8jlhEaEyVsIFpB6mSWt5OagBfTQx/TgjWEd2w66CMyrY6wE=
```
for **decompression**
```
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer non justo nibh. Aenean nisl nulla, lacinia in nunc eu, fringilla gravida massa. Proin congue leo risus, in aliquet tellus elementum vel. Nam quis lacus sed mauris tempus cursus. Sed dapibus est neque, in tristique leo dapibus sed. Donec eu sollicitudin erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec sed eros enim. Nulla tempor, odio nec porttitor pulvinar, turpis nisl fringilla lorem, et tincidunt justo lacus id tellus. Donec tincidunt venenatis feugiat. Mauris dictum lectus tincidunt fermentum hendrerit. Etiam feugiat in risus at feugiat. Suspendisse leo mi, tincidunt eu molestie id, fermentum id odio. Nullam lorem augue, ultricies eget dignissim vel, pulvinar nec nulla.
```
Contributor guide
Research direction
Start by locating CyberChef's existing compression and decompression operation entry points and their tests, then check how Brotli can be used from the JavaScript runtime. The work is done when the supplied examples compress and decompress correctly and coverage verifies both directions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- tooling, web-dev
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100