Added
- Add
item-title-missinglint (#670 by casey) - Add lint for non-square embedded audio cover art (#604 by casey)
- Add lint for mismatch between video and placeholder dimensions(#600 by casey)
- Add lint for missing video placeholder images (#594 by casey)
- Add video placeholder images (#590 by casey)
- Add lints for missing media items and package creator (#586 by casey)
- Add more metadata lints (#585 by casey)
- Add media missing and metadata missing lints (#584 by casey)
- Skip lints with
--allow(#583 by casey) - Allow denying individual lints (#582 by casey)
- Add lints for missing artwork and derived assets (#581 by casey)
- Extract titles from images (#571 by casey)
- Extract titles from videos (#570 by casey)
- Add
alllint group (#560 by casey) - Overwrite thumbnails with `--force (#558 by casey)
- Generate thumbnails with
filepack create --generate(#555 by casey) - Add lint for missing embedded cover art in audio files (#552 by casey)
- Add
filepack deletesubcommand (#533 by casey) - Add
DELETE /api/package/FINGERPRINT(#532 by casey) - Add color metadata to images (#521 by casey)
- Support MP3s in audio packages (#513 by casey)
- Add
/api/packagesendpoint (#497 by casey) - Add web packages and mounts (#494 by casey)
- Add chroma subsampling to video tracks (#471 by casey)
- Add channel count and sample rate to audio tracks (#469 by casey)
- Add orientation to video tracks (#466 by casey)
- Add bit depth to video tracks (#457 by casey)
- Add track size (#455 by casey)
- Add frame count to video tracks (#453 by casey)
- Add duration to videos (#451 by casey)
- Support WebM videos (#441 by casey)
- Support H.264 videos (#422 by casey)
- Add video media type (#421 by casey)
- Add
Track::channels(#407 by casey) - Add sample bits to Track (#405 by casey)
- Add disc and track numbers to tracks (#403 by casey)
- Add directory count and size to totals (#393 by casey)
- Add total file count to directories (#389 by casey)
- Add total file size to directories (#386 by casey)
- Allow ignoring files during create and verify (#354 by casey)
- Add
--redirect DOMAINtofilepack serve(#344 by casey) - Include image dimensions in metadata (#341 by casey)
- Populate metadata with track titles (#338 by casey)
- Add image media type (#334 by casey)
- Add audio media (#318 by casey)
- Add
/packagesroute (#290 by casey) - Add package verification and display (#287 by casey)
- Add
/directory(#282 by casey) - Add
/files(#281 by casey) - Allow restricting uploads (#277 by casey)
- Add package upload and download (#273 by casey)
- Add filepack server (#259 by casey)
- Add
package.titlemetadata field (#252 by casey)
Changed
- Forbid duplicate items (#580 by casey)
- Forbid
RelativePaths over 4096 bytes (#579 by casey) - Forbid
Textwhich is empty or has leading or trailing whitespace (#574 by casey) - Rename
--restrict-uploadsto--restrict-writes(#553 by casey) - Use text instead of components in package metadata (#546 by casey)
- Use full paths in metadata instead of filenames (#545 by casey)
- Add
--allflag tofilepack deletecommand (#544 by casey) - Add
filepack gccommand (#543 by casey) - Move directory and package verification routes to
/api(#531 by casey) - Don't require authentication for
/api/missing(#523 by casey) - Don't use platform-dependent data directories (#507 by casey)
- Forbid files outside of
staticin web packages (#500 by casey) - Move
/missingto/api/missing(#496 by casey) - Require web packages to contain
index.html(#495 by casey) - Rename
Package::readmetoPackage::colophon(#485 by casey) - Improve time representation (#449 by casey)
- Allow videos with no audio track (#431 by casey)
- Rename Track sample_count to samples (#406 by casey)
- Forbid extra files in media packages (#355 by casey)
- Use
.filemetaextension for metadata (#353 by casey) - Allow
filepack uploadinput to be directory or omitted (#298 by casey) - Change upload flags to
--fileand--package(#293 by casey) - Rename
metadata.cbortometadata.filepack(#255 by casey) - Encode manifest signatures as CBOR (#254 by casey)
- Rename manifest
filestopackage(#251 by casey) - Embed metadata in manifest archive (#249 by casey)
- Encode manifest as CBOR (#244 by casey)
- Encode metadata as CBOR (#243 by casey)
Misc
- Fix shortcuts popover on mobile Safari (#681 by casey)
- Display item details side-by-side instead of stacked (#680 by casey)
- Add popover and fullscreen toggle keyboard shortcuts (#679 by casey)
- Add keyboard shortcut popover to
/itempage (#678 by casey) - Style
/itempage info<hgroup>and move to bottom of page (#677 by casey) - Autofocus audio and video on
/item(#676 by casey) - Display artist and album on audio
/itempages (#675 by casey) - Merge media
/itempage templates (#674 by casey) - Navigate images with p, n, and u, instead of arrow keys (#673 by casey)
- Use SVG box favicon (#671 by casey)
- Remove focus outline from video on package
/itempage (#669 by casey) - Check if package root is a directory in
createandverify(#668 by casey) - Only apply nav link color transition on hover (#667 by casey)
- Make active nav link stand out more (#666 by casey)
- Use same spacing between
/packagethumbnails and top-level sections (#665 by casey) - Use
emunits for no-packages message on/(#664 by casey) - Remove backticks from code in no-packages message (#663 by casey)
- Don't hide status code text shadow overflow (#662 by casey)
- Use RGB colors (#661 by casey)
- Suggest uploading packages if there are none (#660 by casey)
- Highlight current page link in the nav bar (#659 by casey)
- Link to
/packagesin nav bar (#658 by casey) - Display compression type for images and video (#657 by casey)
- Allow first two columns of
/packagesto wrap (#656 by casey) - Use
itemsinstead offilesin/media<dl>(#655 by casey) - Use light gray focus color (#654 by casey)
- Restyle audio item durations on
/package(#653 by casey) - Justify right side of thumbnails on
/package(#652 by casey) - Use better fonts in frontend (#651 by casey)
- Remove extra space around nested
<dl>s (#650 by casey) - Use regular spacing in server CSS (#649 by casey)
- Use OKLCH colors (#648 by casey)
- Make artwork on
/packagesmaller (#647 by casey) - Remove side-by side layout
/package(#646 by casey) - Constrain artwork on
/packageto be square (#645 by casey) - Use
--surfacecolor for packages with no artwork (#644 by casey) - Display video images on
/package(#643 by casey) - Use placeholder thumbnails for video item Open Graph images (#642 by casey)
- Generate video placeholder thumbnails (#641 by casey)
- Use singular
filein/package<dl>(#640 by casey) - Disable text size adjustment (#639 by casey)
- Don't use package fingerprints in headings (#638 by casey)
- Put artwork and metadata side-by side on
/packagewhen possible (#637 by casey) - Display image item titles on hover (#636 by casey)
- Display language names instead of codes on
/package(#635 by casey) - Add outline around image links on hover (#634 by casey)
- Deduplicate image border CSS (#633 by casey)
- Use
InfoBuilderto generate/media<dl>(#632 by casey) - Omit empty package metadata from
/package<dl>(#631 by casey) - Add
role=listtoInfoHtmllists (#630 by casey) - Use
InfoBuilderto generate/package<dl>(#629 by casey) - Suppress Chrome translation popup (#628 by casey)
- Style error page (#627 by casey)
- Don't lowercase error page titles (#626 by casey)
- Use sentence case in server text (#625 by casey)
- Add borders around
<dl>s (#624 by casey) - Add hairline between
<dl>rows (#623 by casey) - Use two-column layout for
<dl>s (#622 by casey) - Use BBR congestion control on server (#621 by casey)
- Increase reader stream buffer capacity (#620 by casey)
- Add publisher metadata field (#619 by casey)
- Refactor linter initialization (#618 by casey)
- Move all lints into linter (#617 by casey)
- Check metadata lints first during package creation (#616 by casey)
- Reaname
index.csstopage.css(#615 by casey) - De-duplicate thumbnail CSS (#614 by casey)
- Remove
/packagesgrid view (#613 by casey) - Serve HTML error pages (#612 by casey)
- Justify image package thumbnails (#611 by casey)
- Draw image grid thumbnail borders flush with image (#610 by casey)
- Remove underling from
?on 404 page (#609 by casey) - Add nav bar (#608 by casey)
- Rename
PackageKeytoSortKey(#607 by casey) - Display packages on homepage (#606 by casey)
- Fix install script recipes (#605 by casey)
- Allow sorting package list by any column (#603 by casey)
- Don't delete files in
clear-serverrecipe (#602 by casey) - Deduplicate lint error printing (#601 by casey)
- Optimize CI (#595 by casey)
- Allow navigating to item package using up arrow key on images (#593 by casey)
- Open Make all YAML media items objects (#591 by casey)
- Make package title sort case insensitive (#589 by casey)
- Sort
/packagesby title (#588 by casey) - Display positional item titles instead of falling back to paths (#587 by casey)
- Uppercase component outside of loop in path lint (#578 by casey)
- Use
ProgressBarwrapper (#577 by casey) - Clear progress bars after subcommands finish (#576 by casey)
- Rotate image before checking thumbnail size (#575 by casey)
- Use dedicated YAML metadata template types (#573 by casey)
- Display bytes freed from
filepack gcin human-readable units (#572 by casey) - Move
Audio::titleinto outerItemstruct (#569 by casey) - Display progress bar for cover art check (#568 by casey)
- Use thumbnails for Open Graph images (#567 by casey)
- Generate PNG thumbnails for PNGs with alpha (#566 by casey)
- Display metadata population progress bar (#565 by casey)
- Display thumbnail generation progress bar (#564 by casey)
- Don't upscale thumbnails (#563 by casey)
- Don't include thumbnails with a larger file size than the original image (#562 by casey)
- Use more complementary progress bar characters (#561 by casey)
- Generate artwork thumbnails (#559 by casey)
- Add
--lockedto installation commands (#557 by casey) - Use image thumbnails (#556 by casey)
- Navigate between images with left and right arrow keys (#554 by casey)
- Remove optional whitespace from static asset content types (#551 by casey)
- Add
--lockedto install recipe (#550 by casey) - Add Open Graph images to item pages (#548 by casey)
- Allow unused async on redirect route (#547 by casey)
- Configure server HTTP settings (#542 by casey)
- Use server constructor for redirect server (#541 by casey)
- Use adaptive HTTP/2 flow control window in server (#540 by casey)
- Make
apimodule private (#539 by casey) - Add
Test::write_keypair()helper (#538 by casey) - Use strongly-typed API routes (#537 by casey)
- Move status checks inside client method helpers (#536 by casey)
- Construct URLs in client method helpers (#535 by casey)
- Add dedicated server client (#534 by casey)
- Skip IDv1 tags when decoding MP3s (#527 by casey)
- Rename builder methods to be more uniform (#530 by casey)
- Use
FlacBuilderin tests (#529 by casey) - Use
Mp3Builderin tests (#528 by casey) - Use
InfoBuilderin tests (#526 by casey) - Require video track color metadata (#525 by casey)
- Add JPEG and PNG builders (#522 by casey)
- Calculate audio bitrate (#520 by casey)
- Refactor audio errors (#519 by casey)
- Rename
{Image,Video}Infoto{Image,Video}Metadata(#518 by casey) - Refactor video decoders (#517 by casey)
- Refactor audio decoding (#516 by casey)
- Add
Infobuilder (#515 by casey) - Refactor MP3 decoder (#514 by casey)
- Remove unnecessary
Dedentimplementations (#512 by casey) - Unindent more test strings (#511 by casey)
- Indent test strings (#510 by casey)
- Rename
Mediaitem lists toitems(#509 by casey) - Document media metadata (#508 by casey)
- Add tests for
redbtrait implementations (#506 by casey) - Don't hash files before upload (#504 by casey)
- Remove encoding tests for derived implementations (#503 by casey)
- Write
metadata.filemetaafter create checks pass (#502 by casey) - Simplify
RelativePath::from_str()(#501 by casey) - Serve web package files from
staticdirectory (#499 by casey) - Link to mount from
/package(#498 by casey) - Add Open Graph description and image dimensions (#492 by casey)
- Display non-media package files on
/package(#490 by casey) - Use package artwork as
og:imageon/package(#486 by casey) - Use
CheckedUrl::checkto check CLI URLs (#491 by casey) - Require HTTP(S) in
CheckedUrls (#489 by casey) - Quote unsafe attribute interpolations (#488 by casey)
- Add
charset=utf-8to text asset content types (#487 by casey) - Link to readmes from
/package(#483 by casey) - Display package metadata on
/package(#482 by casey) - Improve demo server readme description (#481 by casey)
- Link to demo server in readme (#480 by casey)
- Clarify server help text (#479 by casey)
- Add total duration to video packages (#478 by casey)
- Move image creation functions into test.rs (#477 by casey)
- Deduplicate milli display (#476 by casey)
- Simplify
/packageformat display (#475 by casey) - Separate audio format items on
/media(#474 by casey) - Display video track bitrate and bits per pixel on
/media(#473 by casey) - Display video track framerate on
/media(#472 by casey) - Use
matchstatement inTrack::info()(#470 by casey) - Add package link to
/media(#468 by casey) - Improve media info page (#467 by casey)
- Add media info page (#465 by casey)
- Extract image rotation (#464 by casey)
- Show more information in
/packageslist (#462 by casey) - Display creator and title on
/packagesgrid (#461 by casey) - Add view toggle to
/packages(#460 by casey) - Add
/packagesgrid view (#459 by casey) - Extract bit depth from MP4s (#458 by casey)
- Rename
ArtworkDimensionserror toArtworkAspectRatio(#456 by casey) - Refactor
Video::info_webm()(#454 by casey) - Forbid pre-existing CBOR metadata in
filepack create(#452 by casey) - Allow
#[cbor(validate)]on enums and structs (#450 by casey) - Extract video tracks (#448 by casey)
- Remove resolution from formats (#445 by casey)
- Forbid leading zeros and signs in ordinals (#447 by casey)
- Frobid leading zeros and sign in audio tags (#446 by casey)
- Replace
mp4parsewithre_mp4(#443 by casey) - Display image resolutions on
/package(#442 by casey) - Use
itemin media routes (#440 by casey) - Deduplicate media item server functions (#439 by casey)
- Avoid duplicating media item name in functions (#438 by casey)
- Display H.264 with a period (#437 by casey)
- Display track dimensions as shorthand (#436 by casey)
- Derive
EncodeandDecodeforSortedSet(#435 by casey) - Add
Validatetrait (#432 by casey) - Display creator on
/packages(#433 by casey) - Separate format items with a middle dot (#434 by casey)
- Represent
VideoFormatas list of tracks (#430 by casey) - Represent
Videoas list of tracks (#429 by casey) - Rename
TracktoAudio(#428 by casey) - Group statements in
Track::populate_flac()(#427 by casey) - Deduplicate
FlacReadercreation (#426 by casey) - Deduplicate
MediaItemDoesNotExisterror checking (#425 by casey) - Enable previewing MP4 files (#424 by casey)
- Make video player full-page (#423 by casey)
- Add border radius to artwork on
/package(#420 by casey) - Display hashes in monospace (#419 by casey)
- Display image format on
/package(#418 by casey) - Shrink
/packageartwork to fit page (#417 by casey) - Wrap
<dd>overflow (#416 by casey) - Hide
<h1>overflow (#415 by casey) - Use index.css in 404.html (#414 by casey)
- Use color variables in CSS (#413 by casey)
- Use lighter background color (#412 by casey)
- Improve track duration display on
/package(#411 by casey) - Use size as download link text on
/directory(#410 by casey) - Display audio formats on
/package(#409 by casey) - Add download links to
/directory(#408 by casey) - Group tracks by disc on
/package(#404 by casey) - Use saturating addition when summing track durations (#402 by casey)
- Verify uploaded directory entry sizes and totals (#401 by casey)
- Verify directory totals once (#400 by casey)
- Reuse database transactions (#399 by casey)
- Display file size and count on
/package(#398 by casey) - Track directories in
filepack downloadprogress bar (#396 by casey) - Add
#[must_use]toTotals::checked_add()(#397 by casey) - Include all totals in
filepack size(#395 by casey) - Display total directory file size on
/directory(#394 by casey) - Remove
DirectoryTree::totals()(#392 by casey) - Update
actions/checkoutto v7 (#391 by casey) - Refactor
ArchiveandManifestloading functions (#390 by casey) - Avoid
ArchiveBuilder::directory()panic (#388 by casey) - Fix panic if
signaturesdirectory references non-existent file (#387 by casey) - Add
PackageBuilder(#385 by casey) - Chain directory builder methods (#384 by casey)
- Add directory builder methods (#383 by casey)
- Refactor entry construction and server file reads (#381 by casey)
- Display track duration (#379 by casey)
- Display track info (#378 by casey)
- Add thumbnail borders (#376 by casey)
- Lazy-load thumbnails (#375 by casey)
- Display image thumbnails on
/package(#374 by casey) - Make track anchor link single line (#373 by casey)
- Use ordinal number in image list (#372 by casey)
- Add package item pages (#371 by casey)
- Move server routes into submodule (#370 by casey)
- Add
color-scheme: darkto CSS (#369 by casey) - Use Let's Encrypt staging directory in tests (#366 by casey)
- Display files inline in
/directorywhere possible (#363 by casey) - Add sizes and download filenames to /directory (#362 by casey)
- Update messaging (#361 by casey)
- Use
tracinginstead oflog(#360 by casey) - Use black background on all pages (#359 by casey)
- Fix ACME event spelling (#358 by casey)
- Add logging (#357 by casey)
- Don't decode FLAC audio when populating metadata (#356 by casey)
- Forbid control codes in metadata strings (#352 by casey)
- Check readme extension on creation (#351 by casey)
- Rename
Package::nfotoPackage::readme(#350 by casey) - Remove
package.creator_tag(#349 by casey) - Fix redirects over HTTPS (#348 by casey)
- Simplify server domain flags (#347 by casey)
- Match full standard error in
redirect_http_to_httpstest (#346 by casey) - Serve
Strict-Transport-Securityheader on HTTPS responses (#345 by casey) - Redirect
/package1…to/package/package1…(#343 by casey) - Forbid control codes in path components (#342 by casey)
- Don't check content during
filepack verify(#340 by casey) - Rewrite readme intro (#339 by casey)
- Add AGENTS.md (#337 by casey)
- Decode image media images (#336 by casey)
- Use one-based indexing for tracks and images (#335 by casey)
- Add Bech32 HRP checks (#333 by casey)
- Only upload missing files (#332 by casey)
- Skip reupload when server already has package (#331 by casey)
- Add assert_cbor_eq (#330 by casey)
- Use hex in assert_cbor (#329 by casey)
- Rename
PackageUnverifiedtoPackageRootUnverified(#328 by casey) - Use a single transaction in
Server::packages()(#327 by casey) - Use titles in /packages (#326 by casey)
- Link to packages from homepage (#325 by casey)
- Use chained route methods (#324 by casey)
- Use package title in page title (#323 by casey)
- Support resource range requests (#322 by casey)
- Display package title in header (#321 by casey)
- Remove stale link to DESIGN.md from readme (#320 by casey)
- Add resource type (#319 by casey)
- Implement
EncodeandDecodeforVec<T>(#317 by casey) - Add encode and decode support for enum variants with named fields (#316 by casey)
- Link to artwork on /package (#315 by casey)
- Convert metadata tests to unit tests (#314 by casey)
- Only verify signatures in
filepack verify(#313 by casey) - Verify package metadata in
filepack download(#312 by casey) - Refactor key and value implementations (#311 by casey)
- Check metadata in
filepack verify(#310 by casey) - Return internal server error when package artwork is missing (#309 by casey)
- Only decode artwork image headers (#308 by casey)
- Check artwork dimensions (#307 by casey)
- Update boilerplate to 1.2.0 (#306 by casey)
- Display artwork on /package (#305 by casey)
- Serve package artwork (#304 by casey)
- Poll server while waiting for ready signal (#303 by casey)
- Verify that metadata-referenced files have been uploaded (#302 by casey)
- Avoid dependency on
aws-lc-rs(#301 by casey) - Configure HTTP client (#300 by casey)
- Implement display for all errors (#299 by casey)
- Allow artwork with
.jpgextension (#297 by casey) - Switch to std::assert_matches (#296 by casey)
- Fix download recipe (#295 by casey)
- Fix broken clap groups (#294 by casey)
- Add download progress bar (#292 by casey)
- Add upload progress bar (#291 by casey)
- Deduplicate HTML boilerplate (#289 by casey)
- Use template objects in integration test assertions (#288 by casey)
- Make serve tests sync (#286 by casey)
- Make Server sync (#285 by casey)
- Add trailing slash to directories on
/directory(#284 by casey) - Use
<ul>for/directory(#283 by casey) - Set
X-Content-Type-Options: nosniffon all responses (#280 by casey) - Fix
filepack serve --domainhelp text (#279 by casey) - Add homepage to server (#278 by casey)
- Default to package upload and download (#275 by casey)
- Add additional upload/download integration tests (#274 by casey)
- Add HTTPS support to server (#272 by casey)
- Time out while waiting for server port (#271 by casey)
- Stream server uploads to disk (#270 by casey)
- Set download cache headers (#269 by casey)
- Stream server downloads from disk (#268 by casey)
- Stream downloads to disk (#267 by casey)
- Stream uploads from disk (#266 by casey)
- Short-circuit upload if file already exists (#265 by casey)
- Write uploads to temporary file (#264 by terror)
- Rename Url to CheckedUrl (#263 by casey)
- Encode envelope context as integer (#262 by casey)
- Forbid incompatible derive attributes (#261 by casey)
- Use
#[n(N)]with enum CBOR derive macros (#260 by casey) - Rename message to statement (#258 by casey)
- Fix references to $XDG_DATA_HOME (#257 by casey)
- Use application and context types (#256 by casey)
- Move message signing context into envelope (#253 by casey)
- Derive encode and decode for enums (#250 by casey)
- Move test functions into test module (#248 by casey)
- Add derive macros for Encode and Decode (#247 by casey)
- Add borrowed
Componentand ownedComponentBuf(#246 by casey) - Borrow decoder input (#245 by casey)
- Use snake_case instead of kebab-case for serialization (#242 by casey)
- Use CBOR-based fingerprint serialization (#241 by casey)
- Expand guide (#240 by casey)
- Move design overview into readme (#239 by casey)
- Add future directions section to readme (#238 by casey)
- Add metadata section to readme (#237 by casey)
- Add Filepack for SFV Enjoyers to readme (#236 by casey)