Skip to content

Improve benchmark cli, make compatible with deno#4647

Merged
coolreader18 merged 9 commits intomasterfrom
noa/tidy-benchmark2
Mar 24, 2026
Merged

Improve benchmark cli, make compatible with deno#4647
coolreader18 merged 9 commits intomasterfrom
noa/tidy-benchmark2

Conversation

@coolreader18
Copy link
Copy Markdown
Collaborator

@coolreader18 coolreader18 commented Mar 16, 2026

Description of Changes

Now we get a --help for the benchmark, which is nicer. Also now can run under deno, with deno --sloppy-imports -A src/demo.ts (might be useful, deno's websocket is implemented in native code while node's is implemented in JS). I removed the BOM because it seems unintentional (only found in templates/keynote-2) and was causing a little bit of weirdness.

Also, fix the rust benchmark client as a follow-up to #4616

Expected complexity level and risk

1

Testing

  • Works under deno and has usage

@coolreader18 coolreader18 force-pushed the noa/tidy-benchmark2 branch 2 times, most recently from 50bbb02 to a247485 Compare March 18, 2026 21:13
Comment thread templates/keynote-2/src/opts.ts Outdated
Comment thread templates/keynote-2/src/opts.ts Outdated
@coolreader18 coolreader18 added this pull request to the merge queue Mar 24, 2026
Merged via the queue into master with commit 7d0a0b9 Mar 24, 2026
34 checks passed
github-merge-queue Bot pushed a commit that referenced this pull request Apr 17, 2026
# Description of Changes

Refresh this stale PR against current `master`. Several original items
were already applied upstream or conflict with recent keynote-2 work
(#4616, #4647, #4678, #4682, #4698, #4703, #4743, #4745, #4753, #4757),
so those are dropped. What remains is the still-relevant subset, rebased
onto the current file structures.

**README.md:**
- Use `pnpm run demo` in Quick Demo (consistency with pnpm workspace)
- Add `--concurrency` and `--alpha` to demo options
- Add `--` separator to `docker compose run` bench example
- Fix hardware config punctuation (add comma before "OS:")
- Remove redundant Quick Start section; replace with link to DEVELOP.md
for prerequisites and CLI reference
- Add symlink for license

**DEVELOP.md:**
- Use `pnpm run` throughout (demo, prep, bench) instead of `npm run`
- Drop the `-- ` pass-through after `pnpm run bench` (not needed with
pnpm; matches the `#4703` testing examples)
- Add Rust to Prerequisites
- Add explicit list of valid connector names (`convex`, `spacetimedb`,
`bun`, `postgres_rpc`, `cockroach_rpc`, `sqlite_rpc`, `supabase_rpc`,
`planetscale_pg_rpc`)
- Update CLI reference defaults to match methodology (seconds: 1→10,
concurrency: 10→50)
- Condense `docker compose run` bench example to a single line with `--`
separator; fix `npm prep` → `pnpm run prep`

**src/opts.ts:** (CLI parsing moved here in `#4703`; original PR
targeted the now-gone inline parsers in `cli.ts`/`demo.ts`)
- `parseBenchOptions`: bench `--seconds` default `1` → `10`
- `parseDemoOptions`: demo `--concurrency` default `10` → `50`

**.env.example:**
- Comment out `USE_DOCKER=1` and `SKIP_CONVEX=1` so demo defaults
(convex, spacetimedb) work out of the box
- Comment out `CONVEX_USE_SHARDED_COUNTER=1` (still a supported knob,
just off by default)

# Dropped as superseded by master

- Rust Client README section tweaks (heading capitalization,
`bottlnecked`/`then` typo fixes) — section was removed by `#4753`
- Rename `SPACETIME_METRICS_ENDPOINT` → `USE_SPACETIME_METRICS_ENDPOINT`
— master's `src/config.ts` still reads the original name
- Connector-name fixes in examples (`sqlite` → `sqlite_rpc`, `postgres`
→ `postgres_rpc`) — already corrected on master

# API and ABI breaking changes

None.

# Expected complexity level and risk

**1** – Documentation and default-value changes. No functional changes
to core logic.

# Testing

- [x] `pnpm install` in `templates/keynote-2/` succeeds
- [x] `pnpm run bench --help` / `pnpm run demo --help` render with
valid-connec
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.

2 participants