<feed xmlns='http://www.w3.org/2005/Atom'>
<title>unit.git/src, branch compr</title>
<subtitle>Universal Web Application Server</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/'/>
<entry>
<title>http: Compress application responses</title>
<updated>2024-12-04T20:52:45+00:00</updated>
<author>
<name>Andrew Clayton</name>
<email>a.clayton@nginx.com</email>
</author>
<published>2024-10-10T16:06:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=78d32c33895e500bf8f23f464e95a4609b4d3925'/>
<id>78d32c33895e500bf8f23f464e95a4609b4d3925</id>
<content type='text'>
Co-authored-by: Alejandro Colomar &lt;alx@kernel.org&gt;
Signed-off-by: Alejandro Colomar &lt;alx@kernel.org&gt;
Signed-off-by: Andrew Clayton &lt;a.clayton@nginx.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: Alejandro Colomar &lt;alx@kernel.org&gt;
Signed-off-by: Alejandro Colomar &lt;alx@kernel.org&gt;
Signed-off-by: Andrew Clayton &lt;a.clayton@nginx.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>http: Compress static responses</title>
<updated>2024-12-04T20:52:06+00:00</updated>
<author>
<name>Andrew Clayton</name>
<email>a.clayton@nginx.com</email>
</author>
<published>2024-11-29T15:46:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=ab666231170edfe2eaeafe568b933c5150f58db0'/>
<id>ab666231170edfe2eaeafe568b933c5150f58db0</id>
<content type='text'>
Signed-off-by: Andrew Clayton &lt;a.clayton@nginx.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Andrew Clayton &lt;a.clayton@nginx.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>http: compress: Add a couple of helper functions</title>
<updated>2024-11-29T15:43:11+00:00</updated>
<author>
<name>Andrew Clayton</name>
<email>a.clayton@nginx.com</email>
</author>
<published>2024-11-29T15:43:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=5237c85147c2b342b9dd2e152f027597ef578646'/>
<id>5237c85147c2b342b9dd2e152f027597ef578646</id>
<content type='text'>
This adds two helper function that will be used in subsequent commits.

nxt_http_comp_compress() does the actual compression.

nxt_http_comp_bound() returns the maximum compressed size for the given
size.

Signed-off-by: Andrew Clayton &lt;a.clayton@nginx.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds two helper function that will be used in subsequent commits.

nxt_http_comp_compress() does the actual compression.

nxt_http_comp_bound() returns the maximum compressed size for the given
size.

Signed-off-by: Andrew Clayton &lt;a.clayton@nginx.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>** DEBUG DO NOT MERGE **</title>
<updated>2024-11-29T00:45:24+00:00</updated>
<author>
<name>Andrew Clayton</name>
<email>a.clayton@nginx.com</email>
</author>
<published>2024-11-20T22:47:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=30107046ed302e675870a027570433ac87f4aa08'/>
<id>30107046ed302e675870a027570433ac87f4aa08</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>http: Wire up HTTP compression support to the config system</title>
<updated>2024-11-29T00:45:24+00:00</updated>
<author>
<name>Andrew Clayton</name>
<email>a.clayton@nginx.com</email>
</author>
<published>2024-11-20T17:02:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=4ddf19c3fccc4265c46139addabe354c99b1587b'/>
<id>4ddf19c3fccc4265c46139addabe354c99b1587b</id>
<content type='text'>
This exposes a new "settings.http.compression" configuration object.

Under which are types &amp; compressors objects.

types is used to specify what MIME types should be considered
compressible.

compressors is used to configure an array of compressors that are
available. For each of these, you specify the encoding, e.g gzip and
optional level and min_length parameters. Where level is what
compression level to use and min_length is the minimum length of data
that should be compressed.

By default the default compression level for the specified compressor is
used and there is no minimum data length considered for compression.

It may look something like

    "settings": {
        "http": {
            "server_version": true,
            "static": {
                "mime_types": {
                    "text/x-c": [
                        ".c",
                        ".h"
                    ]
                }
            },
            "compression": {
                "types": [
                    "text/*"
                ],
                "compressors": [
                    {
                        "encoding": "gzip",
                        "level": 3,
                        "min_length": 2048
                    },
                    {
                        "encoding": "deflate",
                        "min_length": 1024
                    },
                    {
                        "encoding": "zstd",
                        "min_length": 2048
                    },
                    {
                        "encoding": "br",
                        "min_length": 256
                    }
                ]
            }
        }
    },

Currently this is a global option that will effect both static and
application responses.

In future it should be possible to add per-application (and perhaps even
per-static) configuration.

Signed-off-by: Andrew Clayton &lt;a.clayton@nginx.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This exposes a new "settings.http.compression" configuration object.

Under which are types &amp; compressors objects.

types is used to specify what MIME types should be considered
compressible.

compressors is used to configure an array of compressors that are
available. For each of these, you specify the encoding, e.g gzip and
optional level and min_length parameters. Where level is what
compression level to use and min_length is the minimum length of data
that should be compressed.

By default the default compression level for the specified compressor is
used and there is no minimum data length considered for compression.

It may look something like

    "settings": {
        "http": {
            "server_version": true,
            "static": {
                "mime_types": {
                    "text/x-c": [
                        ".c",
                        ".h"
                    ]
                }
            },
            "compression": {
                "types": [
                    "text/*"
                ],
                "compressors": [
                    {
                        "encoding": "gzip",
                        "level": 3,
                        "min_length": 2048
                    },
                    {
                        "encoding": "deflate",
                        "min_length": 1024
                    },
                    {
                        "encoding": "zstd",
                        "min_length": 2048
                    },
                    {
                        "encoding": "br",
                        "min_length": 256
                    }
                ]
            }
        }
    },

Currently this is a global option that will effect both static and
application responses.

In future it should be possible to add per-application (and perhaps even
per-static) configuration.

Signed-off-by: Andrew Clayton &lt;a.clayton@nginx.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>http: Add support for brotli compression</title>
<updated>2024-11-29T00:45:24+00:00</updated>
<author>
<name>Andrew Clayton</name>
<email>a.clayton@nginx.com</email>
</author>
<published>2024-11-20T16:20:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=0de46a7db5d443bfc0e15cfbe654387377690d2e'/>
<id>0de46a7db5d443bfc0e15cfbe654387377690d2e</id>
<content type='text'>
Signed-off-by: Andrew Clayton &lt;a.clayton@nginx.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Andrew Clayton &lt;a.clayton@nginx.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>http: Add support for zstd compression</title>
<updated>2024-11-29T00:45:24+00:00</updated>
<author>
<name>Andrew Clayton</name>
<email>a.clayton@nginx.com</email>
</author>
<published>2024-11-20T16:19:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=87665a5b1f415bad309cffb96c2885971cc0de4b'/>
<id>87665a5b1f415bad309cffb96c2885971cc0de4b</id>
<content type='text'>
Signed-off-by: Andrew Clayton &lt;a.clayton@nginx.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Andrew Clayton &lt;a.clayton@nginx.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>http: Add zlib compression support</title>
<updated>2024-11-29T00:45:24+00:00</updated>
<author>
<name>Andrew Clayton</name>
<email>a.clayton@nginx.com</email>
</author>
<published>2024-11-20T16:13:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=9e836e683f1125955e6d69afd90e8fac328f1b4b'/>
<id>9e836e683f1125955e6d69afd90e8fac328f1b4b</id>
<content type='text'>
This adds support for both deflate &amp; gzip compressors.

Signed-off-by: Andrew Clayton &lt;a.clayton@nginx.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds support for both deflate &amp; gzip compressors.

Signed-off-by: Andrew Clayton &lt;a.clayton@nginx.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>http: Add core http compression code</title>
<updated>2024-11-29T00:45:22+00:00</updated>
<author>
<name>Andrew Clayton</name>
<email>a.clayton@nginx.com</email>
</author>
<published>2024-11-20T15:50:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=fd7d4c695777d3e34a4af9741600b591f8bbef79'/>
<id>fd7d4c695777d3e34a4af9741600b591f8bbef79</id>
<content type='text'>
This is the initial step to enabling HTTP compression on both static and
application responses.

This code itself doesn't do any actual compression, that will come in
subsequent commits. It just contains the core functions for initialising
structures that describe the available compressors and functions for
checking if compression should be done depending on various criteria.

Signed-off-by: Andrew Clayton &lt;a.clayton@nginx.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is the initial step to enabling HTTP compression on both static and
application responses.

This code itself doesn't do any actual compression, that will come in
subsequent commits. It just contains the core functions for initialising
structures that describe the available compressors and functions for
checking if compression should be done depending on various criteria.

Signed-off-by: Andrew Clayton &lt;a.clayton@nginx.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>http: Add a mime_type member to nxt_http_response_t</title>
<updated>2024-11-20T22:52:25+00:00</updated>
<author>
<name>Andrew Clayton</name>
<email>a.clayton@nginx.com</email>
</author>
<published>2024-11-20T16:41:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/unit.git/commit/?id=dc638026cb460513a3339cb04b01ee40720f140c'/>
<id>dc638026cb460513a3339cb04b01ee40720f140c</id>
<content type='text'>
This is to store the MIME type of the response which will be used by the
HTTP compression patches as part of determining whether or not to
compress the response.

Signed-off-by: Andrew Clayton &lt;a.clayton@nginx.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is to store the MIME type of the response which will be used by the
HTTP compression patches as part of determining whether or not to
compress the response.

Signed-off-by: Andrew Clayton &lt;a.clayton@nginx.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
