Populars: Dades actualitzades el 27 d’octubre del 2026

Categories

Internet1.356
Comunicació321
Àudio i vídeo898
Gràfics i disseny539
Ofimàtica i productivitat1.124
Eines per a desenvolupadors3.134
Eines d’IA529
Seguretat i privadesa385
Eines del sistema3.114
Jocs523
Educació i ciència239
Xarxa i TI284

Baixar Vayu 0.23.0 per a Windows

Open-source API client with a native C++ load-testing engine - Postman-style requests and k6-level load tests in one local app.

Atharva Kusumbia API i desenvolupament web #91 API i desenvolupament web
Aquesta és una versió anterior. La versió actual és la 0.45.0. Vayu 0.45.0 · Data de publicació:

Fitxers d’instal·lació 0.23.0

ArquitecturaTipusÀmbitMida del fitxerBaixaSHA256
64 bits EXE (NSIS) · en-US — — 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ó

0.23.0 - 2026-08-23
The keyboard release. A review of every key the renderer listens for found that the chords were not really a system: fourteen bindings were hand-rolled in the Shell against e.key behind a raw e.metaKey || e.ctrlKey, six of them re-derived as independent label literals in the Dock, and the registry that constants/shortcuts.ts promises in its own header was true of neither. Two of the gaps were live misfires on layouts nobody here types on - AltGr is Ctrl+Alt on many European Windows layouts, so typing @ closed the tab, and the digit chords compared against characters AZERTY's digit row does not produce. Consolidating them onto one registry is what made the rest possible: chords are now inert behind a modal, they survive an IME's Enter, they work on a Mac keyboard's delete key, and for the first time they are listed on a screen. The engine side of the release is not a feature but a floor: C++23 is on, -Werror is a gate, and clang-format and clang-tidy went from three layers of advisory nothing to checks that fail a build.
Added
- Settings > Keyboard shortcuts. Cmd/Ctrl+W, +B, +I and +1-9 appeared nowhere in the app: the Dock advertised the drawer switchers, the URL bar advertised Send and Load Test, and everything else lived in a handler and a doc. The panel holds no list of its own - each chord definition carries its label, SHORTCUT_GROUPS groups the same objects, and the key-caps render through chordKeys, the function the Dock's tooltips already use. A table of names and keys sitting beside the registry is exactly the defect the consolidation removed, so the surface is derived or it is nothing. The command palette gains the row for free, since it already generates one command per settings panel. Read-only for now: rebinding is a store, a persistence format, a conflict check against the native menu and a matcher that reads user data, and it is tracked separately.
- The app tells you when a corrupted database was deleted. The engine already deleted a database it could neither open nor restore from its .bak, so the daemon starts instead of crash-looping forever; the entire record of it was two lines in the engine log, while every collection, request, environment, saved example, spec document and run was gone and the app came up looking like a fresh install. The fact cannot live in the database, because the database is the thing that just went away, so the recovery branch writes a JSON marker beside it, GET /health reports it as a recovery node that is absent on a clean start, and the app renders a dismissible banner naming the path. Presence alone distinguishes a wipe from a genuine first run, because a clean start writes no marker; the engine never clears one, since it can be restarted before any client polls, so showing the notice once is the reader's job and the app does it by persisting the timestamp it acknowledged rather than by holding component state - a second window against an already-running engine would otherwise re-announce a wipe that had been dismissed.
- The engine is C++23. The standard flip is the smaller half. The routes' "error or nothing" type was std::optional<std::pair<int, nlohmann::json>>, where an empty optional meant success: if (err) was the failure path, return std::nullopt meant "fine", and a dropped return value silently meant "no error", which is why the two most dangerous appliers carried [[nodiscard]] by hand. It is now std::expected<void, RouteError> with named status and body, so propagation reads forwards and the response is reachable only through .error(). The whole family moved together - appliers, guards, per-file builders - because converting half of one idiom would have left an adapter at every boundary between the halves. Inbox parsers followed the same way, returning std::expected rather than an optional standing in for an error. std::move_only_function is deliberately still out: AppleClang's libc++ has not shipped it, and no runner pin fixes a library gap.
- The pre-commit hook checks formatting, not just tidiness. It format-checks staged engine sources at the same clang-format 19 CI pins, and it now finds clang-tidy-19 the way it already found the versioned clang-format, so the hook a contributor installs and the gate CI runs are the same opinion.
Changed
- The engine's lint and format gates are gates. .clang-format is derived from the code that exists rather than asserted over it, pinned to clang-format 19 and enforced in CI, with engine/{src,include,tests} bulk-formatted once and that commit recorded in .git-blame-ignore-revs so history stays readable through it. clang-tidy runs on Linux and Windows against a PCH-free compile database, scoped to translation units and to the lines a pull request actually changed, with the reformatting commit as the diff's floor so nobody inherits the bulk commit's findings. -Werror is a real CI gate with the compiler-warning inventory zeroed underneath it. Shell and Python across the whole tree are linted on one job. None of this changes what Vayu does; it changes what can be merged.
Fixed
- AltGr and AZERTY fired the wrong chords. altKey was never compared, and AltGr is Ctrl+Alt on many European Windows layouts, so typing @, EUR or \ saved, closed the tab or toggled the drawer. The digit chords compared e.key against "1".."9", which AZERTY's unshifted digit row does not produce, and the shifted press that does report "1" was consumed by the shifted-chord branch first, so both spellings were dead. They now bind by e.code, position being stable where the character is not, and the label still reads Cmd-1. Two things the same consolidation exposed: the palette's chord is now strict about its modifier, because its capture-phase listener was stealing Ctrl+K - Cocoa's kill-to-end-of-line, and Monaco's deleteAllRight - out of every input on macOS; and Send was dead inside every Monaco editor, since the window handler excludes editors on purpose and no editor command existed. The editor re-dispatches the chord rather than calling the send itself, so the in-flight, empty-URL, open-modal and no-load-test gates stay in the one place they are written.
- Global chords fired through open dialogs. Neither window-level handler knew a dialog was open: the Shell's map had no target guard at all, and the send listener excluded textareas, contenteditable and Monaco but not a plain input, which is what every dialog field is. So Cmd+Enter in the "Save response as example" name field saved the example and sent the request behind the dialog, and Cmd+W closed the tab the dialog belonged to, unmounting its owner mid-interaction. One predicate now answers for both, and it reads the DOM rather than an open-dialog counter in a store - that is the same answer for every dialog including ones a later feature adds, with nothing to register and no way for a crashed unmount to leave a count stuck above zero.
- An IME's Enter was read as a submit. Chinese, Japanese and Korean input methods commit the composition buffer with Enter, and that commit arrives as an ordinary keydown a handler testing e.key === "Enter" cannot tell from a submit. Every Enter-to-act field in the renderer was written that way, so the first Enter saved an example named by a half-composed buffer, fetched a URL still being spelled, or added a partly-typed allowlist host. One guard, adopted at all seven sites the review found.
- Keyboard delete was dead on macOS. A Mac keyboard's "delete" reports Backspace; Delete is forward-delete, which effectively nobody presses, and both bare-key handlers listened for Delete alone. The collection tree's row menu was unreachable there too, opening only on the ContextMenu key or Shift+F10, neither of which a Mac keyboard has. Both handlers now accept Backspace on every platform rather than behind a platform fork, and the row menu takes Shift+Enter as a third binding.
- Two roving-tabindex grids leaked their tab stops. Arrowing across the tab strip promoted each destination by writing tabIndex = 0 onto the element and left every tab it had promoted behind it, so a dozen arrow presses made the strip a dozen Tab stops again; focus moves without activating, so there was no render to lean on. The strip also declared role="tablist" and stopped there, leaving a screen reader at "tab 2 of 3" and then content with no stated relationship to it, so each tab now names the region it switches and the region names its tab. The send-with-row picker had the mirror problem: its tab stop hung off an address into the file while the rows on screen are the filtered set clipped to a growing window, so a remembered index past the first hundred rows, a filter that excludes the selection, or a file that shrank underneath it left no row carrying the stop and took the whole grid out of the tab order.
- A remembered data row the file no longer has. The picker's typed field refuses a number outside the file; the two indices nobody types - the remembered index and a step card's repro target - were not clamped against the file as it reads now, and the file can shrink between the send that recorded one and the reopen that reads it. The footer still read "Send row N" and sent an entry that was not there, which the send path treats as an ordinary row-less request, so it went out with every {{data.*}} token unbound and nothing named the cause.

https://github.com/athrvk/vayu/releases/tag/v0.23.0

El més popular a API i desenvolupament web

Mostra-ho tot
  1. BrunoAPI i desenvolupament web · Anoop M D
  2. InsomniaAPI i desenvolupament web · Kong
  3. YaakAPI i desenvolupament web · Mountain Loop Labs
  4. RenderDocAPI i desenvolupament web · Baldur Karlsson
  5. Altair GraphQL ClientAPI i desenvolupament web · Samuel Imolorhe
  6. HTTPieAPI i desenvolupament web · HTTPie
  7. ResponsivelyAppAPI i desenvolupament web · Responsively
  8. HurlAPI i desenvolupament web · Orange-OpenSource
  9. SoapUIAPI i desenvolupament web · SmartBear Software
  10. JACK2API i desenvolupament web · jackaudio.org

Etiquetes

Comparteix