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.
翻译准备中
演示文稿和幻灯片:用纯 Rust 实现的开源、净室重构 Microsoft PowerPoint。属于 ArtCraft Crafting Apps 系列。
AI 翻译
Presentations and slide shows: an open-source, clean-room reimplementation of Microsoft PowerPoint in pure Rust. Part of the ArtCraft Crafting Apps.
效率工具Rust · ShellGitHub @storytold自行安装运营者未确认
试用过了吗? 点一下就好,无需登录。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗[!NOTE] ArtCraft is a community of artists from all walks of life. Painters, photographers, filmmakers, illustrators, designers, animators, hobbyists, and people who picked up a pencil last week. If you make things, you're one of us. Come say hi on Discord.
DeckCraft is in alpha, heading for beta (see the roadmap). Today it can:
PDF export uses the shared craft-pdf writer with import features disabled. See
crates/pdf/README.md for the dependency and validation requirements.
git clone https://github.com/storytold/deckcraft
cd deckcraft
cargo run --release -p deckcraft-cli -- render --sample --all --scale 1 out/
On Linux, the build also needs the ALSA headers for slide-show sound: alsa-lib-devel on Fedora,
libasound2-dev on Debian and Ubuntu, alsa-lib on Arch. Without them it stops at alsa-sys.
Fonts come from craft-fonts: clone it next to this repo
(../craft-fonts) and local builds pick it up automatically; without it DeckCraft uses your system
fonts.
Each GitHub release has ready-made builds, on Linux as
an AppImage, a .deb, an .rpm and a tarball. On Gentoo, the community ::snakebyte
overlay packages the Linux release as
app-office/deckcraft-bin (not maintained by the DeckCraft team):
eselect repository add snakebyte git https://github.com/switch87/snakebyte-overlay.git
emaint sync -r snakebyte
echo 'app-office/deckcraft-bin ~amd64' >> /etc/portage/package.accept_keywords/deckcraft
emerge --ask app-office/deckcraft-bin
The desktop app writes its log records to standard error and to logs/deckcraft.log in the
settings directory, beside ui.json and prefs.json (Linux ~/.config/deckcraft/logs/, or
$XDG_CONFIG_HOME/deckcraft/logs/; macOS ~/Library/Application Support/DeckCraft/logs/; Windows
%APPDATA%\DeckCraft\logs\). A start from a desktop menu or the Dock has no terminal, so this file
is what to attach to a bug report: the crash guard's panic report, a failed crash-recovery save,
Parts skipped on import and audio output problems land there. Each launch moves the
previous log to deckcraft.1.log (and that one to deckcraft.2.log), so the log of a run that
crashed survives the next start. The file stops growing at 16 MiB. --version writes no file.
| Variable | Effect |
|---|---|
RUST_LOG | Log levels for standard error and the log file. Default: info for DeckCraft's own crates, warn for everything else. env_logger-style directives replace that, e.g. RUST_LOG=debug, RUST_LOG=warn,deckcraft_pptx=trace or RUST_LOG=info,wgpu_core=warn; a directive ending in * covers every target starting with it (deckcraft*=debug). |
The logger is apps/deckcraft/src/logging.rs; the realtime audio callback does not log. The web
app logs to the browser console instead.
Every action in DeckCraft is a command with a stable id, so people, scripts and AI agents use the same verbs:
deckcraft-cli commands format. # list commands
deckcraft-cli run --sample --cmd 'slide.new={"layout":"titleOnly","title":"Hello"}' --save hello.deckcraft
deckcraft-cli mcp # MCP server over stdio (headless)
deckcraft-cli mcp --connect 7990 # drive the running app (deckcraft --control 7990)
deckcraft-cli mcp --automation-read-root DIR --automation-write-root DIR # confine the headless agent to folders
DeckCraft is in alpha. It covers 84% of the features tracked in docs/target-app-parity.md by breadth (92% of the core
ones, measured) and is about 55% ready for real work across all tracked capabilities (estimated).
See ROADMAP.md for the stage, numbers by dimension and what's next,
docs/target-app-parity.md for the full assessment,
docs/gaps.md for every known shortfall and
docs/parity-checklist.md for the feature-by-feature checklist.
Download DeckCraft from GitHub: the latest release has every build listed below, and all releases has earlier versions and their notes. <ver> in the file names is the version number, and SHA256SUMS.txt lists a checksum for every file.
| Build | Installer | Portable |
|---|---|---|
| x64 (64-bit Intel/AMD) | deckcraft-<ver>-windows-x64.msi | deckcraft-<ver>-windows-x64-portable.zip |
| arm64 (Snapdragon and other ARM PCs) | deckcraft-<ver>-windows-arm64.msi | deckcraft-<ver>-windows-arm64-portable.zip |
| x86 (32-bit) | deckcraft-<ver>-windows-x86.msi | deckcraft-<ver>-windows-x86-portable.zip |
Installers and executables are code-signed.
If the app doesn't open on Windows: the desktop app initializes only DirectX 12 by default.
Letting wgpu also create an OpenGL instance can crash some graphics drivers (AMD's
atio6axx.dll) before the window appears, so the app would flash in Task Manager and quit.
WGPU_BACKEND overrides the default for troubleshooting (for example dx12 or vulkan). In
PowerShell, from the folder containing the executable:
$env:WGPU_BACKEND = "vulkan"
& .\deckcraft.exe
Remove-Item Env:WGPU_BACKEND # restore the default for later launches
An explicit gl override can bring the driver crash back on affected systems. The macOS, Linux
and web backend defaults are unchanged.
DirectX 12 shaders are compiled with FXC, which is part of Windows, so no dxcompiler.dll or
dxil.dll is needed ("Parent device is lost" at start, #153). $env:WGPU_DX12_COMPILER = "dxc"
(or "auto") selects wgpu's DXC handling again for troubleshooting.
| Build | File | Notes |
|---|---|---|
| App, universal (Apple silicon + Intel) | deckcraft-<ver>-macos-universal.dmg | Signed and notarized |
| Command-line tool, universal | deckcraft-cli-<ver>-macos-universal.zip | Signed and notarized |
| Format | x86_64 | aarch64 (ARM64) | Notes |
|---|---|---|---|
| AppImage | deckcraft-<ver>-linux-x86_64.AppImage | deckcraft-<ver>-linux-aarch64.AppImage | Runs anywhere; updates itself with AppImageUpdate (.zsync files) |
| Flatpak | deckcraft-<ver>-linux-x86_64.flatpak | deckcraft-<ver>-linux-aarch64.flatpak | Sandboxed; flatpak install --user <file> |
| Debian/Ubuntu | deckcraft-<ver>-linux-x86_64.deb | deckcraft-<ver>-linux-aarch64.deb | |
| Fedora/RHEL/openSUSE | deckcraft-<ver>-linux-x86_64.rpm | deckcraft-<ver>-linux-aarch64.rpm | |
| Tarball | deckcraft-<ver>-linux-x86_64.tar.gz | deckcraft-<ver>-linux-aarch64.tar.gz | Unpack anywhere |
RISC-V 64 (riscv64): deckcraft-<ver>-linux-riscv64.tar.gz, a tarball only (cross-compiled; needs glibc 2.39+, e.g. Ubuntu 24.04+).
Runtime libraries. The window-system, GPU and file-dialog libraries DeckCraft needs are opened
when the app starts (dlopen through x11-dl, xkbcommon-dl, ash, glutin and rfd) instead
of being linked in, so ldd shows none of them: an install that satisfies the linked dependencies
can still fail at start-up with a loader error and no hint of what to install. Only
libasound.so.2 (slide-show sound) is a hard link-time dependency, and only of the deckcraft
GUI — deckcraft-cli uses neither sound nor a display. The .deb and .rpm declare the set in
packaging/linux/nfpm.yaml; a tarball install or a musl system has to provide it itself:
apk add libx11 libxcursor libxrandr libxi libxkbcommon xkeyboard-config \
wayland-libs-client alsa-lib \
vulkan-loader mesa-vulkan-swrast \
mesa-gl mesa-egl mesa-dri-gallium \
xdg-desktop-portal
Alpine Linux v3.22 names above; Void's musl variant uses the same /lib/ld-musl-x86_64.so.1
loader and the same libraries as libX11 libXcursor libXrandr libXi libxkbcommon xkeyboard-config wayland alsa-lib vulkan-loader mesa xdg-desktop-portal. There is no musl build among the release
artifacts yet — this is what a build from source on musl needs at run time, and what a future musl
artifact will need (#954).
mesa-vulkan-swrast is the software Vulkan driver: it runs anywhere, VMs and containers
included. On a real GPU install your vendor's driver instead (mesa-vulkan-intel,
mesa-vulkan-ati, mesa-vulkan-nouveau, …).xdg-desktop-portal (with xdg-desktop-portal-gtk or -kde; -wlr has no file chooser, so
on wlroots compositors install zenity) is what the Open and Save dialogs talk to; xkeyboard-config holds the XKB keyboard data libxkbcommon reads./usr/share/fonts itself and embeds its
presentation fonts.Building from source on musl also needs build-base pkgconf alsa-lib-dev (alsa-lib-dev is the
ALSA headers).
| Build | File |
|---|---|
| x86_64 | deckcraft-<ver>-freebsd-x86_64.tar.gz |
| Build | File | Notes |
|---|---|---|
| Static site | deckcraft-web-<ver>.zip | Runs in a modern browser; host it on any static server |
DeckCraft is one of the Crafting Apps: free, open-source creative tools from the ArtCraft team, each written from scratch in Rust and each able to stand on its own.
| App | What it's for | Code | Learn more | |
|---|---|---|---|---|
| PhotoCraft | Image editing: layers, masks, type and real PSD files | GitHub | Website | |
| VectorCraft | Vector illustration | GitHub | Website | |
| FilmCraft | Video editing, color and sound | GitHub | Website | |
| LightCraft | Photo library and raw development | GitHub | Website | |
| PdfCraft | Reading, organizing and protecting PDFs | GitHub | Website | |
| EffectCraft | Motion graphics and visual effects | GitHub | Website |
And ArtCraft itself, our AI image and video studio for artists who want real control.
DeckCraft is dual-licensed under MIT or Apache-2.0, at your option. Copyright (c) 2026 ArtCraft Team and the DeckCraft contributors. Required notices are in NOTICE.
Bundled fonts, icons, images and other assets keep their own open licenses; each one is listed with its author, source and license in ATTRIBUTION.md.
DeckCraft's themes, layouts, shape geometry, icons and sample decks are original work, drawn or generated in code; no proprietary artwork, fonts, themes or templates are used.
The ArtCraft name, wordmark and logos in docs/brand/ are trademarks of the
ArtCraft Team and are not covered by this license. They may be used only unmodified, and only as
part of this repository and DeckCraft, under docs/brand/LICENSE-brand.txt.
Forks and modified versions must remove them.
| DesignCraft | Page layout and publishing | GitHub | Website |
| DeckCraft | Presentations and slide shows · you are here | GitHub | Website |