mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-11-13 12:13:42 +01:00
08733bf74d40fab3620ddfa81b39281584816542
Two changes that go together, because the first is untestable without the second. `max_size` goes 20 → 50. The comment justifying 20 was out of date: it cited the 256 open-file soft limit macOS gives GUI apps, but `run()` has since called `rlimit::increase_nofile_limit(10240)` before any pool is opened, so the ceiling it was sized against is gone. 50 WAL connections is roughly 150 descriptors against 10240, and only `min_idle` is opened up front — r2d2 creates the rest on demand — so the idle cost is unchanged. The comment now says what actually bounds the number: commands nest a couple of connections each, and since #542 every frontend command dispatches as its own task, so they arrive together. On its own that is a guess with no way to check itself. A pool that cannot hand out a connection fails with `Error(None)` and nothing else, whether every connection is checked out or none could be opened — unrelated problems with identical symptoms, and raising the ceiling only helps the first. So both pools now acquire through one helper that times the wait, warns past a second, and folds the pool's state into `Error::PoolTimeout`. The error a command returns now says which failure it was, which is what the next report needs to be worth anything. Blob pool sizing is untouched; nothing points at it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
💫 Yaak ➟ Desktop API Client 💫
A fast, privacy-first API client for REST, GraphQL, SSE, WebSocket, and gRPC – built with Tauri, Rust, and React.
Development is funded by community-purchased licenses. You can also become a sponsor to have your logo appear below. 💖
Features
Yaak is an offline-first API client designed to stay out of your way while giving you everything you need when you need it. Built with Tauri, Rust, and React, it’s fast, lightweight, and private. No telemetry, no VC funding, and no cloud lock-in.
🌐 Work with any API
- Import collections from Postman, Insomnia, OpenAPI, Swagger, or Curl.
- Send requests via REST, GraphQL, gRPC, WebSocket, or Server-Sent Events.
- Filter and inspect responses with JSONPath or XPath.
🔐 Stay secure
- Use OAuth 2.0, JWT, Basic Auth, or custom plugins for authentication.
- Secure sensitive values with encrypted secrets.
- Store secrets in your OS keychain.
☁️ Organize & collaborate
- Group requests into workspaces and nested folders.
- Use environment variables to switch between dev, staging, and prod.
- Mirror workspaces to your filesystem for versioning in Git or syncing with Dropbox.
🧩 Extend & customize
- Insert dynamic values like UUIDs or timestamps with template tags.
- Pick from built-in themes or build your own.
- Create plugins to extend authentication, template tags, or the UI.
Contribution Policy
Important
Community PRs are currently limited to bug fixes. If your PR is not a bug fix, link the feedback item where @gschier explicitly gave you permission to work on it. See
CONTRIBUTING.mdfor policy details andDEVELOPMENT.mdfor local setup.























