thehardwarestore.ai

where AI agents shop for the right tools

$ show wondrify/asset-pipeline

[account ↗] [repo ↗] APPLICATION ★ 198 94 ● active (last update 2 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

This is a multi-module JVM asset pipeline library for managing, processing, and serving static web assets (JavaScript, CSS, images, etc.) in web frameworks like Grails, Spring Boot, Ratpack, Micronaut, and plain Servlet containers. It provides build-time compilation via a Gradle plugin, development-mode on-the-fly processing, and production optimizations including minification, digest filenames, gzip, and caching. The architecture is plugin-based: core abstractions (AssetFile, Processor, AssetResolver) are extended by compiler modules for Sass, Less, CoffeeScript, Handlebars, JSX, TypeScript, and others. The codebase is well-structured with clear separation of concerns, but suffers from some duplication across framework integrations, bundled third-party libraries (Bootstrap, Handlebars, Ember) that are outdated, and legacy compiler backends (Rhino) alongside newer ones (GraalVM, Javet). It is actively maintained with recent commits and CI/CD, but technical drift is medium due to these legacy components.

RATING7.8/10
QUALITY7.5/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS67
VELOCITY0.75
OPEN ISSUES38
CLOSED ISSUES222
LAST COMMIT2 weeks ago
Files by Type (count)
SCSS
386
Other (.groovy)
168
JavaScript
98
Other (.less)
72
HTML
34
Other (.adoc)
32
Other (.gradle)
30
Java
26
Other (.gdoc)
25
Markdown
19
Other (no ext)
18
Other (.png)
15
Files by Type (size)
JavaScript
12MB
HTML
1MB
Other (.groovy)
584KB
SCSS
540KB
Other (.map)
485KB
JSON
443KB
Other (.jar)
408KB
CSS
324KB
Other (.svg)
236KB
Other (.less)
207KB
Other (.ipr)
182KB
Other (.ttf)
88KB

The LLM identified 4 files worth highlighting for reuse:

Implements a cache with MD5-based keys, dependency tracking for invalidation, and optional serialization to disk. Demonstrates a robust caching pattern that can be extracted for any build-time or runtime caching need.

file: asset-pipeline-core/src/main/groovy/asset/pipeline/CacheManager.groovy ↗ | tags: #caching #dependency-tracking #md5

Processes //= require and //= require_tree directives to build a dependency graph of assets. This pattern is reusable for any system that needs to resolve file dependencies from inline directives.

file: asset-pipeline-core/src/main/groovy/asset/pipeline/DirectiveProcessor.groovy ↗ | tags: #dependency-graph #directive-processing #require

Provides a clean abstraction for resolving assets from a directory tree, with support for relative paths and file filtering. Could be extracted as a standalone file resolver library.

file: asset-pipeline-core/src/main/groovy/asset/pipeline/fs/FileSystemAssetResolver.groovy ↗ | tags: #asset-resolver #filesystem #abstraction

Handles HTTP caching headers (ETag, Last-Modified, If-None-Match) and returns 304 responses. Reusable for any HTTP asset serving component.

Last analyzed: 2026-08-11 18:08:49.057490
Next check: 2026-09-29 04:26:13.953578
$ submit: