Skip to content

Asar archive parsing in Rust

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE-Apache.md
MIT
LICENSE-MIT.md
Notifications You must be signed in to change notification settings

Absolucy/asar-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

asar

This crate allows for the parsing, reading, and writing of asar archives, often seen in Electron-based applications.

Examples

Listing the contents of an asar archive

use asar::{AsarReader, Header, Result};
use std::fs;

fn main() -> Result<()> {
	let asar_file = fs::read("archive.asar")?;
	let asar = AsarReader::new(&asar_file)?;

	println!("There are {} files in archive.asar", asar.files().len());
	for path in asar.files().keys() {
		println!("{}", path.display());
	}
	Ok(())
}

Reading a file from an asar archive

use asar::{AsarReader, Header, Result};
use std::{fs, path::PathBuf};

fn main() -> Result<()> {
	let asar_file = fs::read("archive.asar")?;
	let asar = AsarReader::new(&asar_file)?;

	let path = PathBuf::from("hello.txt");
	let file = asar.files().get(&path).unwrap();
	let contents = std::str::from_utf8(file.data()).unwrap();
	assert_eq!(contents, "Hello, World!");
	Ok(())
}

Writing a file to an asar archive

use asar::{AsarWriter, Result};
use std::fs::File;

fn main() -> Result<()> {
	let mut asar = AsarWriter::new();
	asar.write_file("hello.txt", b"Hello, World!", false)?;
	asar.finalize(File::create("archive.asar")?)?;
	Ok(())
}

Features

  • integrity: Enable integrity checks/calculation.
  • check-integrity-on-read: Enable integrity checks when reading an archive, failing if any integrity check fails.
  • write - Enable writing an asar archive. Enabled by default, also enables integrity.

License

asar is licensed under either the MIT license or the Apache License 2.0, at the choice of the user.

License: Apache-2.0 OR MIT

Amendment

I, @Absolucy, fully give permission for any of my code (including the entirety of this project, asar-rs), anywhere, no matter the license, to be used to train machine learning models intended to be used for general-purpose programming or code analysis.

About

Asar archive parsing in Rust

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE-Apache.md
MIT
LICENSE-MIT.md

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages