This repository has been archived by the owner. It is now read-only.
asar v0.3.0
asar - Electron Archive format for Crystal
Read files from .asar
archives with built-in caching.
Installation
Add this to your application's shard.yml
:
dependencies:
asar:
github: petoem/asar
Usage
require "asar"
asar = Asar::Reader.new "path/to/your/archive.asar"
io = asar.get "/awesome/image.png"
slice = asar.get_bytes "/awesome/story.txt"
asar.files # Returns an Array(String) of all files in the archive.
asar.files_cached # Returns an Array(String) of all files in the cache.
Benchmark
> crystal run spec/benchmark.cr --release
get 3.21M (311.09ns) (±14.27%) 4.64× slower
get_bytes 14.9M ( 67.09ns) (± 1.47%) fastest
read_raw 69.21k ( 14.45µs) (±16.62%) 215.36× slower
Note: Benchmark was done on an SSD and the test file was small.
The methods get
and get_bytes
cache a file at first read.
get
returns anIO::Memory
created from the cached fileget_bytes
returns the cached fileread_raw
reads directly from the filesIO
, bypassing the cache
TODO
- Parse asar archive
- Read files from archive
- Pack directory into archive?
- Transform support?
Contributing
- Fork it ( https://github.com/petoem/asar/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
Contributors
- petoem Michael Petö - creator, maintainer
Repository
asar
Owner
Statistic
- 0
- 0
- 0
- 0
- 0
- about 7 years ago
- July 19, 2017
License
MIT License
Links
Synced at
Fri, 22 Nov 2024 07:00:24 GMT
Languages