module Crystar
Overview
Crystar
module contains readers and writers for tar archive.
Tape archives (tar) are a file format for storing a sequence of files that can be read and written in a streaming manner.
This module aims to cover most variations of the format, including those produced by GNU and BSD tar tools.
Example
files = [
{"readme.txt", "This archive contains some text files."},
{"minerals.txt", "Mineral names:\nalunite\nchromium\nvlasovite"},
{"todo.txt", "Get crystal mining license."},
]
buf = IO::Memory.new
Crystar::Writer.open(buf) do |tw|
files.each do |f|
hdr = Header.new(
name: f[0],
mode: 0o600_i64,
size: f[1].size.to_i64
)
tw.write_header(hdr)
tw.write(f[1].to_slice)
end
end
# Open and iterate through the files in the archive
buf.pos = 0
Crystar::Reader.open(buf) do |tar|
tar.each_entry do |entry|
p "Contents of #{entry.name}"
IO.copy entry.io, STDOUT
p "\n"
end
end
Extended Modules
Defined in:
lib/crystar/src/crystar.crlib/crystar/src/tar/format.cr
lib/crystar/src/tar/header.cr
lib/crystar/src/tar/helper.cr
lib/crystar/src/tar/reader.cr
lib/crystar/src/tar/writer.cr
ext/crystar/format.cr
ext/crystar/header.cr
ext/crystar/writer.cr