livebud / bud

The Full-Stack Web Framework for Go
MIT License
5.53k stars 181 forks source link

New generator filesystem #339

Closed matthewmueller closed 1 year ago

matthewmueller commented 1 year ago

While implementing transform and generator, I took on more code complexity than I was comfortable with. This PR reduces the scope of the generator filesystem and starts us on a new path where all the code generators live in the application file system and communicate over RPC as opposed to just the dynamic file generators (generator & transform).

It's worth spending the time to get these abstractions right because this is at the core of what Bud is. It's a bunch of code generators fashioned into a web framework built on top of a virtual filesystem. Once these core abstractions feel good, adding more code generators is straightforward.

Exposing a remote filesystem (in bud/) that the bud binary communicates will give us the flexibility for building dynamic generators going forward. This PR is a step towards making that more manageable.