Aquesta és una versió anterior. La versió actual és la 0.5.1. apic-gui 0.5.1 · Data de publicació:
Fitxers d’instal·lació 0.4.1
| Arquitectura | Tipus | Àmbit | Mida del fitxer | Baixa | SHA256 |
|---|---|---|---|---|---|
| 64 bits | MSI · en-US | Tots els usuaris | — | github.com | VirusTotal |
L’enllaç i l’SHA256 provenen del manifest comunitari del Gestor de paquets del Windows. Convé comparar el hash del fitxer baixat abans d’executar-lo.
Notes de la versió
## apic 0.4.1
A maintenance release on top of 0.4.0. There are **no contract format changes and no new commands**, so existing 0.4.0 projects keep working untouched and no migration step is needed.
The substance of this release is the **eframe/egui 0.35 upgrade** behind the desktop GUI, a dependency refresh across the whole workspace, and a higher minimum supported Rust version. If you only use the CLI/TUI (`apic`), this is a drop-in update with refreshed dependencies underneath.
### Desktop GUI moves to eframe/egui 0.35
`apic-gui` now builds on eframe/egui **0.35**, up from 0.33.3, including the Windows-only wgpu (DirectX) renderer feature that lets the GUI launch in driverless environments such as VMs, RDP sessions, and winget's validation sandbox. Getting there meant following three breaking changes in egui:
• **`App::update` became `App::ui`.** `eframe::App` no longer exposes `update(&mut self, ctx, frame)`. The GUI implements `ui(&mut self, ui, frame)` instead, so the root of the application is now a `Ui` with no margin and no background rather than a `Context`. Panels attach to that root `Ui`, while the native file dialogs and the modal dialogs keep operating on the `Context`, reached through `ui.ctx()`.
• **Panels are unified.** `TopBottomPanel` and `SidePanel` are replaced by a single `egui::Panel` type, so the nav bar, the status bar, and the contract sidebar are built with `Panel::top`, `Panel::bottom`, and `Panel::left`. The sidebar's `default_width`/`min_width` became `default_size`/`min_size`, and nested panels use `show` in place of `show_inside`.
• **`TextEdit::frame` takes a `Frame`.** The old boolean form is gone, so every frameless inline input in the editor (endpoint name, description, URL, response code, response title, table cells, and the JSON editor) now passes `egui::Frame::NONE` explicitly.
### The neon theme survives a light-mode host
egui 0.35 dropped the single global `Context::set_style` in favour of per-theme styles, which would have let the host OS light/dark preference bleed through and partially override the app's palette. `apply_theme` now installs the dark monospace neon palette into **every** theme variant via `all_styles_mut`, so the GUI looks the same regardless of what the desktop environment reports.
### Minimum supported Rust version raised to 1.97
The previous floor was 1.88. The new floor is **Rust 1.97**, declared uniformly across all three crates (`apic-cli`, `apic-core`, and `apic-gui`), so any toolchain that can build one of them can build the whole workspace.
This only affects building from source. The prebuilt binaries and the packaged builds are unaffected. The README's build-from-source instructions were corrected to state 1.97, having still claimed 1.88.
### Dependencies refreshed
Bumped, and pinned down to the patch level so a fresh `cargo build` resolves the same versions CI tested:
• `clap` 4.6.1 to **4.6.4**
• `serde` 1.0.228 to **1.0.229**
• `serde_json` 1.0.150 to **1.0.151**
• `eframe` and `egui_extras` 0.33 to **0.35**
Three dependencies that were previously loose minor requirements now carry explicit patch floors:`libc` **0.2.189**, `ratatui` **0.30.2**, and `ratatui-textarea` **0.9.2**.
### Fixed
• The JSON syntax highlighter clones out of `egui_extras`' frame cache, matching the 0.35 API and keeping the cached layout job valid for the remainder of the frame.
• The GUI frame-timing test drives the app through `Context::run_ui` rather than the removed `Context::run`, so it now exercises the same root-`Ui` code path that eframe hands the real application.
### Documentation and tooling
• The `apic_core::fuzzy::fuzzy_find` example is a real compiled doctest instead of an ignored block, so the documented usage is verified on every test run.
• The Flatpak packaging guide in `packaging/flatpak/README.md` was rewritten to match the current update flow.
• CI and the release workflow use `actions/checkout@v5` in place of `v4`, and the runner images were refreshed.
• The AUR `apic-bin` PKGBUILD plus `.SRCINFO`, and the Copr `apic.spec`, were synced to the 0.4.0 artifacts and checksums.
### Verification
`cargo fmt --all --check` and `cargo clippy --workspace --all-targets -- -D warnings` are clean, and the full suite passes:**258 tests** across the CLI unit tests, `apic-core`, the `apic-gui` render and timing tests, the end-to-end binary tests, and the doctest.
### Install
Package managers:
```bash
yay -S apic-bin # Arch / CachyOS (AUR), both binaries
sudo dnf copr enable rizukirr/apic && sudo dnf install apic-cli apic-gui
flatpak install io.github.rizukirr.apic # GUI
winget install rizukirr.apic # Windows CLI
winget install rizukirr.apic-gui # Windows GUI (MSI)
```
crates.io:
```bash
cargo install apic-cli # CLI / TUI
cargo install apic-gui # desktop GUI
```
Prebuilt binaries are attached below as `apic-v0.4.1-<target>` and `apic-gui-v0.4.1-<target>` archives, each with a `.sha256` checksum. Targets cover Linux (x86_64, aarch64), macOS (Intel, Apple Silicon), and Windows (x86_64), with the arm64 Linux GUI build being best-effort. Windows GUI users can also take the `.msi`, which adds a Start menu entry and an uninstaller.
Note that the package-manager recipes are synced to a release after its artifacts are published, so AUR, Copr, Flatpak, and winget may briefly still serve 0.4.0.
**Full changelog:** https://github.com/rizukirr/apic/compare/v0.4.0...v0.4.1