Rig FAQ


Who is Yzena?

Yzena is Yzena, LLC, a software business wholly owned and operated by Gavin Howard.


How do you say "Yzena"?

ee · zee · nuh

The “Yz” is the same as in Yzma.


Who should try Rig?

Only those who hate their current build systems.

If you don’t hate your current build system, Rig’s alpha state would be a poor impression, so please wait until Rig matures.

In addition, since Rig is written in C, there are a lot of memory bugs, so running Rig is somewhat risky.

But if you hate your current build system and understand the risks, you might be willing to deal with a few bumps.

Like the one below:


Rig crashed with the message "Unimplemented" or for some other reason!

Send Yzena your build script and repo, and I’ll try to implement and/or fix everything it needs.


Why do you require users to follow two licenses?

Because one license, the Yzena Noncommercial License (YNL), is Yzena’s own creation, and it’s not fully vetted by a lawyer yet. The SSPL was selected to be sufficiently radioactive that companies wouldn’t use Yzena’s code.

At least until the YNL is fully vetted, the SSPL has to stay.

However, as soon as the YNL is vetted, the SSPL will go, and Yzena will make that a contractual obligation to customers.

If any of the Yzena licenses look useful for your company, I would be glad to accept payment in exchange for getting the licenses vetted sooner rather than later. What your company gets in exchange can be negotiated.


Why do you have a custom license?

To protect Yzena better than existing licenses. See the No Duty clause, and questions 34-36 in the license FAQ.


Why is your license not a FOSS license?

Because I have realized that FOSS is not the best for software authors and end users. Instead, I think the best kind of license is a Source Available Modifiable Software (SAMS) license.

SAMS licenses are designed to protect authors and end users, but they do remove control from middlemen I call “dealers.”

I decided to make a bet and use a SAMS license.

There is one other reason: Yzena has FOSS licenses (or licenses I think are FOSS), and Rig used to be under one of those licenses. However, a future project that would exist in the same repository would need a noncommercial license because it is meant to be hosted.

So to prevent accusations of a rug pull when I would have to change the license to a noncommercial license, I decided to do it before public release.


You're just going to milk users with that license, just like every other company with non-FOSS software.

That is a valid concern.

However, I don’t need to. Yzena is fully bootstrapped, and it is just me, so I only need enough for one self-employed software engineer and some costs. No rent-seeking necessary, especially if I have multiple customers.

And I have no plans to change that! It turns out that I struggle to build the theory of mind necessary to read code written by other people, so I would prefer to never hire employees because I would struggle to read their code.

Code reviews would be awful!

In other words, I do not need to grow, I have no plans to grow, and I do not want to grow.

Also, license grants are nonrevocable. When customers pay for license grants, they receive a license to the specified versions forever.

This means that customers can stop at any time and not lose what they already have. It also means that in order to convince customers to keep paying, Yzena must continue adding value, rather than extracting it.


I would like to try Rig, but I can't because of the license.

The Yzena Noncommercial License includes a 30-day grace period. This is intentional.

You are free to try Rig for 30 days, no harm, no foul, no cost.


You claimed that your license was FOSS somewhere!

I’m sorry; Rig used to be FOSS.

When I switched to a SAMS license, I tried to find all instances and change them to SAMS. If you found one, contact me, and I will fix it.

To be clear: I do NOT intend to refer to Rig as FOSS; if I do, it’s historical accident.


You said Yzena is just you. You need more people to support customers and do development.

That is a valid concern.

I think I can handle it; if I can’t, I’ll refund customers.

In addition, there aren’t many more people working for Hwaci, the people behind SQLite, and Rig is smaller than SQLite.


Why is Rig so slow?

Because the first version is leaving a lot of performance on the table:

The bootstrap is extra slow because the second stage is running an executable that:

But even with that, Rig does a full three-stage bootstrap in 30 seconds on a 16-core machine, which is less time than it takes to compile a single Rust file in some cases.

In addition, performance is a feature you can pay for, if you want it.


Why is Rig in a repo called "Yc"?

Yc is Yzena’s monorepo; all of Yzena’s software lives there, including Rig.

Yc started out as a bunch of C utilities, and it wasn’t the only repo Yzena had. At one point, Yzena had up to 10 repos.

I decided to see if a monorepo was better than a tangle of Git submodules. It was, for Yzena at least because those repos depended on each other anyway.

For users, this means easier builds; since all of Yzena’s software comes in one package, it can build as a unit without mucking around with Git submodules or dependency management.


Can Rig's language, Yao, be used separately from Rig?

Yes! In fact, a plain Yao script is part of Rig’s bootstrap.