TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
無料・登録不要のオンラインZIP圧縮・解凍ツール。パスワード付きZIPの作成・解凍、日本語ファイル名の文字化け対策にも対応。ブラウザ内で処理するためアップロード不要で安全です。
Translation pending
ProductivityRustGitHub @taotaro1104-commitsOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
ZIP create/extract in the browser (Rust + WebAssembly) with Shift_JIS/UTF-8 filename detection and ZipCrypto/AES-256
Taken from the repository README
Loading the full README.
Read the full README ↗ZIP create / extract in the browser — Rust + WebAssembly, with Shift_JIS / UTF-8 filename detection and password-protected ZIP (ZipCrypto / AES-256).
Live demo: WebTool Free – ZIP Tool · 日本語 README
auto (UTF-8 / Shift_JIS / CP437 fallback) or a manual overrideERR_PASSWORD_REQUIRED, ERR_BAD_PASSWORD).., ., drive letters and empty segments are dropped; \ becomes /)For auto mode the raw filename bytes of each entry (name_raw) are decoded as follows
(src/filename.rs, decode_name):
zip crate (CP437 when the UTF-8 flag is absent).Notes:
0x7075)
are not inspected explicitly by this engine yet. Pure-UTF-8 detection by byte validity covers
the common cases, but a Shift_JIS name that happens to be valid UTF-8 is a theoretical misdetection;
use the manual override in that case.Details: docs/encoding.md
Build the package (see below), then:
import init, { compress_with_options, extract_ex, list_entries } from "./pkg/zip_wasm.js";
await init();
// files: [{ name: string, data: Uint8Array }, ...]
const zip = compress_with_options(files, "sjis", "secret", "zipcrypto");
// ^ "utf8" | "sjis"
// ^ "" = no password
// ^ "aes256" | "zipcrypto"
const entries = list_entries(zip); // [{ name, size, compressedSize, isDir, encrypted }]
const out = extract_ex(zip, "auto", "secret"); // [{ name, data, size }] ("auto" | "utf8" | "sjis" | "cp437")
| Function | Purpose |
|---|---|
compress(files) | UTF-8 names, no password |
compress_with_options(files, nameEncoding, password, encryption) | Full control |
extract(zip) / extract_ex(zip, encoding, password) | Extract (auto-detect / explicit) |
list_entries(zip) / list_entries_ex(zip, encoding) | List entries without extracting |
cargo install wasm-pack
wasm-pack build --target web --release
cargo test
test-fixtures/ contains small ZIPs (Shift_JIS, UTF-8, ZipCrypto, AES-256; password is password)
that you can use to test your own ZIP tools. They are generated by:
cargo test -- --ignored generate_fixtures
ERR_BAD_PASSWORD.Built on these open-source crates:
| Crate | License |
|---|---|
| zip | MIT |
| encoding_rs | (Apache-2.0 OR MIT) AND BSD-3-Clause |
| flate2 | MIT OR Apache-2.0 |
| crc32fast | MIT OR Apache-2.0 |
| wasm-bindgen / js-sys | MIT OR Apache-2.0 |
| getrandom | MIT OR Apache-2.0 |
Licensed under either of Apache License 2.0 or MIT license at your option.