Skip to content

Service Kit

esmevane's 'e'
Published: at 12:00 AM
8 min read

I just merged in a pull request to service-kit, which converts a boilerplate project of mine into a cargo template for rust projects that combines my pet architecture with a lot of preconfigured tools. This is something I immediately used to yarf out a few gizmos for kicking the tires on some exploratory ideas, but it’s out there and now anyone can use it if you want.

You can get started with it like so:

cargo generate esmevane/service-kit

From there, it’ll ask you what you want to name your project, and then it’ll attempt to scaffold out the project for you.

Table of Contents

Open Table of Contents

What’s in it?

A bunch of stuff, really.

The components

The whole thing builds out a few components for you, all in a virtual workspace managed by cargo, and already wired up as much as makes sense.

Why?

This is more or less my “blessed” architecture, or in other words it’s how I set stuff up when I’m building it. The boilerplate for this setup takes a while for me, every time. Having this template lets me kick things off faster and copy stuff around less.

Rough edges

There are a lot of rough edges, so I’m calling this service-kit-v0, and if I need to do any updates I’ll use a copy-and-update approach to make sure published templates never change unless it’s to fix a bug, add documentation, and any non-breaking changes.

It’s just not done, you know? The documentation isn’t there at all, plus I haven’t moved all the names into liquid template variables, stuff like that. The readme needs a lot of polish, the ecosystem of components could use some improvement, the TUI isn’t wired up to observe the API, etc.

Next steps

I’ve got a few things I want to put in v1 that didn’t make it into v0 yet, but would probably not constitute breaking changes. These are things I decided to punt on for now, and circle back around to later.

Ambitions

Down the road, I’ve got some other stuff I want to incorporate

Past these obvious big bits, I’d like to bake in mailer support, payment processing support, and maybe some authz/authn boilerplate that I always wind up cooking up, as well as some way to decide what of these someone does and doesn’t want, and then maybe some tutorials on how to use it all in addition to reference docs.

For now, though, I’m done! I’m gonna go play video games with my son or something.

The link again if you’re curious.