Populiaru: Duomenys atnaujinti: 2026 m. lapkričio 15 d.

Kategorijos

Internetas1 415
Bendravimas328
Garsas ir vaizdas936
Grafika ir dizainas561
Biuras ir produktyvumas1 176
Kūrėjų įrankiai3 279
DI įrankiai605
Sauga ir privatumas407
Sistemos įrankiai3 183
Žaidimai544
Švietimas ir mokslas241
Tinklas ir IT292

apic-gui: senesnės versijos atsisiųsti

Desktop GUI for apic — design and collaborate on Git-friendly API contracts.

Rizki Rakasiwi API ir žiniatinklio kūrimas #99 API ir žiniatinklio kūrimas

Sąraše – 6 versijos programos apic-gui, nuo 2026 m. liepos 7 d. iki dabartinės 1.0.0. Kiekviena veda į diegimo failus leidėjo serveryje.

2026: 6 6 26
VersijaDataDydisFailai
1.0.0Naujausia 2026 m. lapkričio 8 d. — 64 bitų MSI
Laidos pastabos
The first stable release. The desktop GUI now covers the whole loop of working on API contracts in git: edit a contract, send it, review and commit the change, pull, merge and resolve conflicts, and read the history with the new git log panel. The CLI moves to curl-style `create` and `edit`, gains `apic send` with environments, and apic is now licensed under GPL-3.0-only. The contract format is unchanged, so existing projects need no migration.

### Added

- **Git log panel.** The clock button next to the branch dropdown opens a resizable log at the bottom of the window, remembered across launches. It shows a branch's commits with a painted graph, ref labels, author and date, 500 at a time with Load more, and filters by text or hash, branch, user, date range and path. Clicking a commit lists its changed files, and clicking a file shows that commit's diff in the main area. Right-click a commit to copy its hash or revert it after a confirmation. A conflicting revert lands in the conflict resolver.
- **Merge conflict popup.** When a git status finds a file newly conflicted, whether from a Pull or Merge in the branch menu, from git outside the app, or on opening a project mid-merge, a popup lists every conflicted file so the conflict is not missed. OK closes it until another file becomes conflicted.
- **New request and New template without a project.** With no project open, the sidebar's `+` and the Templates section's `+` ask for a folder first, set it up as a project unless it already is one, open it, and then show the dialog. Before, the dialog opened and Create only said "no project".
- **Pull and merge from the GUI branch dropdown.** Each branch has a ⋮ button with Pull, Merge and Delete. It replaces the right-click menu, which closed the dropdown and never showed. Pull lists remote branches and fetches every remote before merging, Merge lists local and remote branches, and both confirm in a popup naming the two branches. A branch that is not checked out is checked out first. Conflicts land in the conflict resolver, and both are refused while a contract has unsaved edits.
- **Sending from the GUI.** The Send button in the URL bar, or Ctrl+Enter (Cmd+Enter on macOS), sends the open contract as shown, unsaved edits included, with a 30 s timeout, and Cancel drops the reply. The environment dropdown in the app bar picks an environment per project, and every send reloads it from disk. A `{name}` path param the environment leaves empty is asked for in a popup. The right pane switches between the documented Examples and the Live reply with its status, time, size, body and headers. The URL bar and values colour `$name`, `${name}`, `{{name}}` and `{name}`, in the warning colour when the selected environment does not define the name.
- **`apic send`, environments and variables.** `apic send -f <query>` sends a contract's request and prints the response body, with `--env <name>`, `--var NAME=VALUE`, `-i` and `--timeout`. `$name`, `${name}` and `{{name}}` are filled from `.apic/env/<name>.toml`, overlaid by the gitignored `<name>.local.toml`. `apic env` lists the environments without printing values, and `apic vars --convert [--write]` rewrites `{{name}}` to `$name`.
- **JSON syntax highlighting in `apic read`.** Request and response bodies are coloured by token on a terminal: keys blue, string values green, numbers yellow, `true`, `false` and `null` magenta, and punctuation dim, using the terminal's own basic colours. Piped or redirected output stays plain.
- `apic read` and `apic list` honour `NO_COLOR`: when it is set and not empty, no colour is written even on a terminal.

### Changed

- **New app icon.** The green flame is now a blue flame, in the window, the Linux launcher, the Windows installer and the macOS bundle.
- **apic is now licensed under the GNU General Public License, version 3 only (GPL-3.0-only)**, replacing the MIT License, starting with this release. `LICENSE`, the crate manifests, the Windows installer's license pag
0.5.1 2026 m. rugpjūčio 27 d. — 64 bitų MSI
0.5.0 2026 m. rugpjūčio 25 d. — 64 bitų MSI
Laidos pastabos
The desktop GUI gains a git panel. The CLI, the TUI and the contract format are unchanged, so existing projects need no migration and nothing has to be updated to keep working.

## Git panel in the desktop GUI

A second sidebar tab, next to Explorer, that appears when the project sits inside a git repository. It shells out to your own `git`, so hooks, credential helpers and config behave exactly as they do in a terminal.

**Status and staging.** Changed files listed under `CONFLICTS`, `STAGED` and `UNSTAGED`, nested by folder like the Explorer tree, scoped to your contract working directory plus `.apic/`. Changes elsewhere in the repository are counted on a line you can expand rather than hidden. Stage, unstage and discard with `+`, `-` and `x` on any file or folder, then commit. Discard is offered for tracked files only and always names what it will revert.

**Diffs.** Selecting a file shows it whole with changed lines coloured. A toggle switches to a field-level summary that names each changed field and its old and new value, which is the better view for a schema change buried in a large contract.

**Branches.** A dropdown lists every local branch. Picking one checks it out, `+` creates one, `x` deletes one behind a confirmation. Deleting is never forced, so git's refusal to drop unmerged work is surfaced rather than overridden. A checkout is refused while a contract has unsaved edits, and after a successful switch the open contract is reloaded from the new branch or closed if it does not exist there.

**Conflict resolution.** A conflicted file opens a resolver:each conflict block in file order with both sides shown, and `Accept ours`, `Accept theirs` or `Accept both` per block. A live preview shows the resulting file as you choose. Nothing is written until Resolve, which stays disabled until every block is decided, then writes the file and stages it.

Not included:merge, pull, fetch, rebase, stash and remote branches.

## Under the hood

`apic-gui` was restructured into `app`, `features` and `ui` layers. `main.rs` was split into app modules, `ContractsState` and `ShellState` were extracted from `App`, panel frames moved into a shell, and the widget and theme modules were split into components, focus, colours, spacing and typography.

A suite of git wiring tests was added, driving a real `App` against a real temporary repository with no rendering. It caught several defects that unit tests on individual functions could not, including one that only appeared on macOS.

Dependencies are on their latest stable versions, including eframe and egui 0.36.

## Fixed

• Scope paths are resolved through symlinks before comparison, closing a case where a symlinked directory made the git panel treat in-scope files as out of scope.
• Unstaging an untracked file works correctly, instead of leaving it staged.

## Install

Prebuilt binaries for Linux, macOS and Windows are attached below, each with a `.sha256`. The desktop GUI ships as a Windows MSI and a macOS `.app` bundle. See the README for package manager options.
0.4.1 2026 m. liepos 30 d. — 64 bitų MSI
Laidos pastabos
## 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 refr
0.4.0 2026 m. liepos 6 d. — 64 bitų MSI
Laidos pastabos
A large release: a simplified, breaking contract format plus full redesigns of both the TUI and the desktop GUI editors around it.
Changed
- Contract format (breaking). The request URL is now a single free-form string ("url": "https://api.example.com/v1/users/{id}") with inline {name} path tokens, replacing the old structured URL object. Query parameters are { name, value, description, required }, both query parameters and headers gain a required flag, and each response can carry its own headers. A request body is the raw JSON payload written directly under request, and a response body is written under the response's schema key. The old type/schema field-level model and the { "example": ... } body wrapper are gone.
- User-facing messages use commas instead of semicolons and em-dashes.
- TUI editing, redesigned. The endpoint header is one inline-editable METHOD url line; the method is chosen from a picker popup instead of cycling. QUERY and HEADERS are NAME/VALUE(/DESCRIPTION) tables. RESPONSE is a code - title tab strip: a opens a Status / Short Description form and then the JSON editor, e edits a tab's status/title (or opens the editor on its body), and d removes a response. The JSON editor saves with Ctrl-S, cancels with Esc, and pretty-prints with Ctrl-P; saving an empty body removes its response.
- Desktop GUI, redesigned. A single tabbed editor (Overview, Headers, Query, Request, Response) with a line-numbered JSON editor, metadata tables carrying a Required/Optional chip, editable response-code tabs, frameless inline inputs, and a calmer green theme.

Added
- The HTTP method is selected from a dropdown in the GUI (and a picker popup in the TUI) listing all methods, rather than cycling one click at a time.
- A required flag on request headers and query parameters, surfaced across the CLI/TUI/GUI, the Postman converter, and the project template.
- Response-level headers, editable in both the TUI and the GUI.
- apic convert --postman gains a --force flag to overwrite contracts thatalready exist. The default still refuses (erroring on an existing file), and the error now points to --force.
- Refreshed bundled example/ project (authentication/ and profile/ sets).

Removed
- The structured body schema, type, field schema, typed fields, properties, file/accept parts, and object[] array bodies, along with the structured URL object. Request and response bodies are now raw JSON payloads (the request written directly under request, a response under schema).
- apic read --example (bodies are already example-only) and the TUI schema generate/infer keys, which no longer have a schema to operate on.

Fixed
- GUI: the sidebar method badge now refreshes when a contract is saved.
- GUI: warn when installing a per-user launcher entry would duplicate an existing system-wide apic entry.
- TUI: numerous editing-correctness fixes (method focus on the url line, modal key handling after close, selected response-tab text color, empty-row cleanup).
- Windows: statically link the MSVC CRT so binaries run without VCRedist, and install apic-gui.exe at the MSI root so winget resolves the executable.
0.3.6 2026 m. liepos 7 d. — 64 bitų MSI

Populiariausios kategorijoje „API ir žiniatinklio kūrimas“

Rodyti viską
  1. BrunoAPI ir žiniatinklio kūrimas · Anoop M D
  2. InsomniaAPI ir žiniatinklio kūrimas · Kong
  3. YaakAPI ir žiniatinklio kūrimas · Mountain Loop Labs
  4. RenderDocAPI ir žiniatinklio kūrimas · Baldur Karlsson
  5. Altair GraphQL ClientAPI ir žiniatinklio kūrimas · Samuel Imolorhe
  6. HTTPieAPI ir žiniatinklio kūrimas · HTTPie
  7. HurlAPI ir žiniatinklio kūrimas · Orange-OpenSource
  8. ResponsivelyAppAPI ir žiniatinklio kūrimas · Responsively
  9. SoapUIAPI ir žiniatinklio kūrimas · SmartBear Software
  10. JACK2API ir žiniatinklio kūrimas · jackaudio.org

Daugiau leidėjo Rizki Rakasiwi programų

Rodyti viską
  • apicAPI ir žiniatinklio kūrimas · Rizki Rakasiwi

Žymės

Bendrinti