Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add brotli mime type detection to file and libmagic #727

Open
stokito opened this issue Oct 27, 2018 · 6 comments
Open

Add brotli mime type detection to file and libmagic #727

stokito opened this issue Oct 27, 2018 · 6 comments

Comments

@stokito
Copy link

stokito commented Oct 27, 2018

The Linux file utility doesn't recognize brotli MIME type:

$ file -i some_archive.br
some_archive.br: application/octet-stream; charset=binary

I know, this is not related for the brotli itself but could you send a PR to file and libmagic so they start to recognize brotli mime type?

https://github.com/file/file/blob/master/src/compress.c
https://github.com/file/file/blob/master/magic/Magdir/archive

Also please confirm the correct brotli mime type #724

@eustas
Copy link
Collaborator

eustas commented Nov 1, 2018

There is a little problem. Most utilities scan first file bytes and compare them against "magic" bytes.
Well,... for brotli 254 of 256 byte values are valid as the first file byte.

Brotli was designed to be "stream" format rather than file format. There is a "brotli-framing-format" project that adds tons of features (including "magic header bytes")... but it is not public yet.

@stokito
Copy link
Author

stokito commented Nov 1, 2018

If I understood correctly gzip is also can be named as stream format but this is not a problem for them to add few magic bytes.
I already used \xce\xb2\xcf\x81 as brotli magic bytes and application/x-brotli as mime type but asked here #724 to confirm.

Where can I read at least something about this framing format? Will we still be able to use regular .br files?

@eustas
Copy link
Collaborator

eustas commented Nov 1, 2018

gzip is a wrapper for deflate streams

@stokito
Copy link
Author

stokito commented Nov 10, 2018

So, the magic bytes which I used are actually from another framing format from #462

@doronbehar
Copy link

I've opened an issue about this in file's bug tracker:

https://bugs.astron.com/view.php?id=111

So @eustas, the issue is that this implementation doesn't include magic bytes when it creates files and not streams?

@unphased
Copy link

unphased commented Aug 4, 2024

What is the state of this? Most (but not all! which is not looking promising) of the brotli files i looked at start with the byte 5b...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants