Skip to content

feat(http): migrate REPL .http + plugin onto http_query_server - #16

Merged
0xeb merged 1 commit into
mainfrom
feat/repl-plugin-on-thinclient
Jun 23, 2026
Merged

0xeb merged 1 commit into
mainfrom
feat/repl-plugin-on-thinclient

Conversation

@0xeb

@0xeb 0xeb commented Jun 23, 2026

Copy link
Copy Markdown
Owner

Completes bnsql's HTTP convergence: the REPL .http command and the Binary Ninja plugin now use xsql::thinclient::http_query_server (statement_executor), like the CLI (#15).

Both are background servers (no main-thread queue), so they use use_queue=false + serialize_requests=true (libxsql v1.0.10) to keep per-request serialization — BN's QueryEngine (and a per-request engine over the shared BinaryView) isn't concurrency-safe. /settings preserved via extra_routes.

All three bnsql HTTP entry points now share the thinclient; setup_http_routes is unused (left for a follow-up cleanup; helpers http_help_text/settings_to_json still used).

Tested

  • REPL .http live: query, ?continue_on_error=1, ?format=csv, /settings ✓
  • Plugin: identical thinclient path (BinaryView executor); compile-verified (in-process GUI server not testable headless).

Both run a background HTTP server (no main-thread queue), so use
use_queue=false + serialize_requests=true (libxsql v1.0.10) to preserve
per-request serialization (BN QueryEngine / per-request engine over a shared
BinaryView is not concurrency-safe). statement_executor replaces the
setup_http_routes path; /settings preserved via extra_routes. With the CLI
already migrated, all three bnsql HTTP entry points now use the shared
thinclient; setup_http_routes is unused (left for a follow-up cleanup).

REPL .http tested live (query, continue_on_error, format=csv, /settings).
Plugin uses the identical thinclient path (BinaryView executor); compile-verified.
@0xeb
0xeb merged commit 7a8edbe into main Jun 23, 2026
0 of 6 checks passed
@0xeb
0xeb deleted the feat/repl-plugin-on-thinclient branch June 23, 2026 21:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant