The crate `datafu` is looking for co-maintainers

The crate datafu is a (successful! as of 0.1.0-alpha.2) attempt to build a query language around serde. However, we definitely bit more than we can chew.

serde has some difficulties, especially around untagged enums and flattened structs. We were originally just gonna use serde for our projects but those issues led us to make datafu. It's not our first query language. In fact it was originally meant to be a port of a query language we wrote in python, but that didn't map cleanly to rust at all, so we rewrote it.

Something datafu does is running a whole interpreter loop inside serde deserialization traits. This took months to figure out, but we definitely learned a lot about serde and Cursed Interpreter Design doing it.

We do however bring a couple of requirements to anyone who might wanna participate in the project, due to how the project is structured:

  • Must be open to using GAnarchy as part of the development workflow. This means that instead of pull requests, you're expected to pull, review, merge and fix random third-party forks you find interesting, and then push those into your own local branch. Pull requests were invented by corporations to centralize and control the development process, and we reject that power structure out of principle.
  • Must be willing to deal with Cursed Interpreter Design. Most interpreters are either strictly push-based or strictly pull-based, but this thing has an interpreter inside the serde traits. In terms of push-based parts it includes the whole visitor system, and in pull-based, the various collections. (In fact, this mixed push-pull arrangement is actually a pretty big limitation of serde and even causes issues in other use-cases.)
1 Like

Do you expect to have your work published on crates.io at some time? If yes, who will have the necessary access?

It is on crates.io/crates/datafu. It's still possible to coordinate releases while using ganarchy, it doesn't prevent that. If anything, it requires more of that. This actually makes it more likely to expose social issues than other structures.