Can you tell me why it's a non-starter for you?
For sqlc, it isn't really a big problem because you only need to run the code generation when you're actually modifying database things. Still, with that having been said, I think just passing a database URI and having analysis work based on that is unideal. Using an actual database isn't a huge problem, but having to manage the database instance out of band is the part that I think isn't great, because it allows for the schema in the code to trivially desync with the schema used in analysis. If I used SQLx I'd probably be compelled to try to wire up a solution that spawns the database and migrates it up hermetically for the caching part. Likewise if I used this mode of sqlc.
I guess it might be possible for sqlc to add first class support for that sort of concept, but I can see holes in it. For one thing, you have to figure out where to grab binaries from and what version. An approach using Docker/Podman works, and at least partly solves this problem because you could allow specifying any OCI image, but that has caveats too, like requiring Docker or Podman to be installed. The most heroic effort would be to use some kind of solution using WASM builds of database engines: pulling down and running something like PGlite in process seems like it would be an almost ideal solution, but it sticks you to whatever things can actually be made to work in WASM in terms of features, extensions and versions, at least unless/until database servers and extension vendors miraculously decide that supporting WASM as a target is a good idea. Still, if you want some crazy ideas for how to make the UX better, I think either the Docker approach or the WASM approach could be made to work to some degree.
Barring that, though, I'd be most likely to have some kind of Docker setup for running sqlc with an ephemeral database instance. It's not pretty, but it works...
I don't think it would be a non-starter, though. I only really think that connecting to the database from within rustc invocations is a non-starter.
The utility lies in having the proper framework for a fitness function (how to choose if the generated code is healthy or needs iterations). I used whether it threw any interpretation-time errors, run-time errors, and whether it passed all of the unit tests as a fitness function.
That said, I think programming will largely evolve into the senior programmer defining a strategy and LLM agents or an intern/junior dev implementing the tactics.
That's basically what goog wants alphaevolve to be. Basically have domain experts give out tasks that "search a space of ideas" and come up with either novel things, improved algorithms or limits / constraints on the problem space. They say that they imagine a world where you "give it some tasks", come back later, and check on what it has produced.
As long as you can have a definition of a broad idea and some quantifiable way to sort results, this might work.
Exactly. As always the challenge is (1) deciding what the computer should do, (2) telling the computer to do it, and (3) verifying the computer did what you meant. A perfect fitness function is a perfect specification is a perfect program.
We provide isolated runtimes for executing untrusted code, mostly generated by LLMs. Our sandboxing is powered by a combination of WebAssembly, V8, and microVMs. Our customers do things like extract data from log lines at run time by asking claude-3-7-sonnet to generate a parsing function on-the-fly and then sending it to us for execution.
Things we need help with:
- Our API (https://docs.riza.io/) (Postgres / Go)
- Our account dashboard (Postgres / Go / React / TypeScript)
- Our code execution engine (Go / Rust)
- New products including code generation workflows (Anthropic / OpenAI experience a plus)
We’ve raised seed money, but the whole company is currently just me, Andrew and David working out of a converted warehouse on Alabama St. We’re second-time founders, so we know the risk we’re asking you to take and we’re prepared to compensate accordingly.
See open roles and apply here: https://jobs.ashbyhq.com/riza
When I hooked up our remote MCP server, Claude sends a GET request to the endpoint. According to the spec, clients that want to support both transports should first attempt to POST an InitializeRequest to the server URL. If that returns a 4xx, it should then assume the SSE integration.
Here's my tool for Desktop: https://github.com/kordless/EvolveMCP
We provide isolated runtimes for executing untrusted code, mostly generated by LLMs. Our sandboxing is powered by a combination of WebAssembly, V8, and microVMs. Our customers do things like extract data from log lines at run time by asking claude-3-7-sonnet to generate a parsing function on-the-fly and then sending it to us for execution.
Things we need help with:
- Our API (https://docs.riza.io/) (Postgres / Go)
- Our account dashboard (Postgres / Go / React / TypeScript)
- Our code execution engine (Go / Rust)
- New products including code generation workflows (Anthropic / OpenAI experience a plus)
We’ve raised seed money, but the whole company is currently just me, Andrew and David working out of a converted warehouse on Alabama St. We’re second-time founders, so we know the risk we’re asking you to take and we’re prepared to compensate accordingly.
See open roles and apply here: https://jobs.ashbyhq.com/riza
% wasmtime run --dir .::/ python.wasm -c 'print("hello world")'
hello world
disclaimer: I run a code execution API service (https://riza.io/playground) that does this and more (HTTP, packages, etc.) wget https://github.com/brettcannon/cpython-wasi-build/releases/download/v3.13.0/python-3.13.0-wasi_sdk-24.zip
unzip python-3.13.0-wasi_sdk-24.zip
wasmtime run --dir .::/ python.wasm -c 'print("hello world")'
So far so good! But... it looks like that --dir option mounts the current directory as both readable and writable: wasmtime run --dir .::/ python.wasm -c 'print(len(open("python.wasm", "rb").read()))'
# Outputs 28775526
But malicious code can break the system like this: wasmtime run --dir .::/ python.wasm -c 'open("python.wasm", "wb").write(b"blah")'
And now it fails with an error if you try to run it because we over-wrote python.wasm. Even if I move python.wasm out of the current directory I'd still be able to break things by breaking those other lib files.Although... I guess I could use unix filesystem permissions to make those read-only? That could work.