propshaft_cr
Version, currently 0.1.13 versions
- 0.1.2latestOct 19, 2026
- 0.1.1Oct 14, 2026
- 0.1.0not indexedOct 14, 2026
github.com/OrelSokolov/propshaft.cr
Port of the propshaft 1.3.2 asset pipeline compiler: digest output, .manifest.json, CSS/JS url rewriting, clean/clobber. Serving is handled by railties_cr's CRails::Middleware::Static (Propshaft::Server port).
Installation
# Add this to your shard.yml
dependencies:
propshaft_cr:
github: OrelSokolov/propshaft.cr
version: ~> 0.1.1Then run:
shards installshard.yml
- Crystal
>= 1.21.0
Dependencies
This version declares no dependencies.
README
This README is the one indexed from the repository at its latest ref, not from the tag for this version.
propshaft.cr
A port of propshaft 1.3.2 — the asset pipeline compiler (pass-through model, no transpilation) — for CRails.
What it does:
- compiles assets from the load path (
app/assets/*,vendor/…) intopublic/assetswith digest names (landing.css→landing-7f665b1b.css; the digest is SHA1 of the content plus its references, 8 hex characters); - rewrites
url(...)in CSS andRAILS_ASSET_URL("...")in JS to/assets/<name>-<digest>.<ext>, andsourceMappingURLto the digested.mappath; - writes
public/assets/.manifest.json:{"<logical>":{"digested_path":"…","integrity":null}}; - precompresses with
.gz/.brsiblings (a CRails extension; static.cr serves them by Accept-Encoding); clean/clobber/reveal.
Serving is handled by railties_cr's CRails::Middleware::Static
(a port of Propshaft::Server): in development it resolves against
the load path, in production it serves digest files from
public/assets. View-level path resolution lives in
CRails::PropshaftHelper (compute_asset_path via the
manifest/load path).
Specs
Oracle-first (see AGENTS.md): a snapshot taken from the real gem —
oracle/propshaft_expected.yml (44 cases) — with a mirror in
spec/propshaft_spec.cr. The reverse check has the gem verify the
port's output byte for byte (oracle/verify_propshaft.rb).
crystal spec # oracle mirror
# reverse (ruby 3.4 + propshaft 1.3.2 in GEM_HOME):
GEM_HOME=… ruby oracle/propshaft_cases.rb > /tmp/x.yml # snapshot
crystal run spec/reverse_runner.cr -- /tmp/out # port output
ruby oracle/verify_propshaft.rb oracle/reverse_fixture /tmp/out
Deviations from the gem are documented in PLAN.md.
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
0.1.1- Tagged
- Oct 14, 2026
- Commit
d440743092ee- Crystal
>= 1.21.0- Indexed
- yes
Dependents
Repository
github.com/OrelSokolov/propshaft.cr
Metadata
- Created
- Oct 15, 2026
- Updated
- Oct 21, 2026
- Synced
- Oct 20, 2026
- Versions
- 3