@@ -1948,7 +1948,7 @@ message Compressor {
19481948 // not need to advertise it.
19491949 IDENTITY = 0 ;
19501950
1951- // Zstandard compression.
1951+ // Zstandard compression without dictionary .
19521952 ZSTD = 1 ;
19531953
19541954 // RFC 1951 Deflate. This format is identical to what is used by ZIP
@@ -1961,9 +1961,28 @@ message Compressor {
19611961
19621962 // Brotli compression.
19631963 BROTLI = 3 ;
1964+
1965+ // Zstandard compression with dictionary. When is is used, the
1966+ // server MUST advertise the dictionaries by including
1967+ // [ZstdDictionaryRegistry][build.bazel.remote.execution.v2.ZstdDictionaryRegistry]
1968+ // digest in CacheCapabilities.
1969+ ZSTD_DICT = 4 ;
19641970 }
19651971}
19661972
1973+ message ZstdDictionaryRegistry {
1974+ // Each file respresent a single Zstandard dictionary
1975+ // with name being the `dictId` that was added to the header
1976+ // of the compressed file.
1977+ //
1978+ // A special file with name `default` is used to represent the
1979+ // default dictionary that is used when no `dictId` is specified.
1980+ // Clients SHOULD prefer to use the default dictionary when possible.
1981+ //
1982+ // The `default` dictionary MUST be present.
1983+ repeated FileNode dictionaries = 1 ;
1984+ }
1985+
19671986// Capabilities of the remote cache system.
19681987message CacheCapabilities {
19691988 // All the digest functions supported by the remote cache.
@@ -1997,6 +2016,11 @@ message CacheCapabilities {
19972016 // [BatchUpdateBlobs][build.bazel.remote.execution.v2.ContentAddressableStorage.BatchUpdateBlobs]
19982017 // requests.
19992018 repeated Compressor.Value supported_batch_update_compressors = 7 ;
2019+
2020+ // The digest of the
2021+ // [ZstdDictionaryRegistry][build.bazel.remote.execution.v2.ZstdDictionaryRegistry]
2022+ // that contains all the dictionaries supported by the remote cache.
2023+ Digest zstd_dictionary_registry = 8 ;
20002024}
20012025
20022026// Capabilities of the remote execution system.
0 commit comments