Arquivos estáticos, compactados para maior eficiência. Atualmente, requer Rust todas as noites.
Neste exemplo, usamos uma macro para avaliar um caminho em tempo de compilação, relativo ao arquivo de origem. No modo de depuração, os arquivos serão carregados em tempo de execução. No modo de liberação, os arquivos são incorporados (e compactados apropriadamente) no binário compilado.
let files : MiniCdn = release_include_mini_cdn ! ( "./path/to/public/files/" ) ;
let html = files . get ( "index.html" ) . unwrap ( ) ;
// 32 byte digest of the file.
let _ = html . etag ;
// Last modified time as string, in UNIX seconds.
let _ = html . last_modified ;
// MIME type string.
let _ = html . mime ;
// Raw HTML bytes.
let _ = html . contents ;
// HTML compressed with Brotli, if it is more efficient.
let _ = html . contents_brotli ;
// HTML compressed with GZIP, if it is more efficient.
let _ = html . contents_gzip ;
let image = files . get ( "images/foo.png" ) . unwrap ( ) ;
// Raw PNG bytes.
let _ = image . contents ;
// WebP bytes (if WebP is more efficient).
let _ = image . contents_webp ;
Todos os campos (exceto contents
) estão desabilitados por padrão, mas podem ser ativados por um sinalizador de recurso correspondente.
Verifique a documentação para outras opções, como fazer a compactação em tempo de execução.
Há suporte experimental para personalizar a compactação usando um arquivo de configuração. Se você tivesse uma imagem chamada some_image.png
, poderia colocar o seguinte em um novo arquivo chamado some_image.minicdn
para ajustar o nível de qualidade do WebP.
webp_quality = 75.0
As seguintes opções estão disponíveis:
brotli_level
(1-11, padrão 9)brotli_buffer_size
(bytes, padrão 4096)brotli_large_window_size
(padrão 20)gzip_level
(1-9, padrão 9)webp_quality
(0-100 ou "sem perdas", padrão 90) Licenciado sob qualquer um dos
a sua opção.
A menos que você declare explicitamente o contrário, qualquer contribuição enviada intencionalmente para inclusão no trabalho por você, conforme definido na licença Apache-2.0, deverá ser licenciada duplamente conforme acima, sem quaisquer termos ou condições adicionais.