Howdy folks, this is an amendment to our previous announcement at the end of 2020: #909
Our plans didn't exactly materialize last year but I think we still had an excellent year of progress on SQLx, with a handful of new features released and old bugs fixed up. Our 0.5.x release of SQLx is the most popular and feature-complete yet!
Meanwhile at Launchbadge, we grew from a team size in the single digits to around a couple dozen people, and picked up several projects that kept us very busy over the last year. I'm surprised we managed to do everything with SQLx that we did, and I think focusing more on incremental development than flashy new features or large refactors helped us maintain a comfortable pace of releases.
We're still acutely interested in providing some way for the community to support continued development and maintenance of SQLx, and that will likely still involve some sort of paid support plan regarding the MSSQL and other potential drivers for proprietary databases. However, our plans have changed slightly, hopefully for the better.
Sometime after we published the above announcement, the folks who work on SeaORM approached us to suggest a different method of publishing the MSSQL driver. It didn't take much to convince us that this suggested way was the right approach.
What is the New Plan?Instead of closing up the source of the MSSQL driver (and any other drivers we develop for proprietary databases in the future--I'm treating "the MSSQL driver" as a shorthand for that here), we will likely keep it open-source, but re-license it under the GNU Affero General Public License (AGPL).
The AGPL, in a nutshell, is a superset of the GPL: essentially, any derivative work of a licensed work (so in this context, any project using the MSSQL driver) that is distributed to the public must itself be licensed under the GPL and source must be made available on request. The Affero GPL places an additional stipulation that counts interacting with licensed software over a computer network to be distribution.
Thus, any web application accessible to the public using the AGPL-licensed MSSQL driver (which is the primary intended use case) must also be licensed under the AGPL and provide source upon request.
Any open source project using the MSSQL driver would be free to use it unrestricted, as long as it was also licensed under the AGPL.
Of course, this would preclude projects, which intend to remain closed-source, from using the MSSQL driver. However, for a fee, an organization could obtain a written contract from us exempting them from enforcement of the AGPL. Non-profit organizations would be able to apply for a similar exemption for zero or reduced cost.
This would allow us to keep the code for the driver in the open on Github, and free to try, while still providing a potential revenue stream.
This way, we don't have to deal with figuring out how to distribute a Rust crate in closed-source form, nor work out how to provide exemptions for open-source projects as that's built right into the license. And it would allow the community to continue to contribute to the driver and freely inspect its code.
We haven't worked out the details yet, but the idea is that the paid exemption would also allow closed-source use of integrations built on top of the MSSQL driver, like ORMs, but worded such that it doesn't necessarily bless any particular implementation.
We are also looking into ways that we can use the generated revenue to contribute back to the community that's sprung up around SQLx, but we're not sure what that would look like yet. Maybe just throwing around some developer time?
How Will Contributing to the AGPL-licensed Drivers Work?We still have to do some further research here. For legal reasons, we may have to require contributors to assign copyright to us for changes made to the code in the differently licensed drivers. To compensate for this, we may have a bug bounty program or something. Feedback is welcome!
Currently, most of the code in the MSSQL driver was written by LaunchBadge employees, with the exception of some broad refactors and a couple of bugfixes by community contributors. We will probably have to hound them down for consent or just remove their code.
What About Pricing?No idea (still)! There's not many examples of projects in similar situations that we can draw from. The closest one that we know of, which we already reference a lot, is jOOQ, which is a solution similar to Diesel but for Java (and much older).
At the time of writing this (Jan 6, 2021), jOOQ's lowest price is 99 Euro (excluding VAT) per developer per year to use SQL Server Express, Oracle DB, and MS Access, but also includes basic support as well as a bunch of codegen features that aren't included in the FOSS version.
That seems like a pretty fair price but the feature set doesn't directly line up with our intended offering. Our codegen features would not be placed behind a paywall, only the integration with MSSQL. And it's hard to say whether it would be better to have separate offerings per driver or just have a single offering that covers all proprietary drivers.
We already provide basic support to our community for free on a best-effort basis via Discord, our issue tracker and this Discussion board, so it's hard to say what more we could offer there except dedicated support hours and guaranteed responses.
The per-developer part would be difficult to enforce for us and so would rely on the honor system, but that may not be an issue since businesses prefer everything on the up and up.
If you know of an example of a similar product with a different pricing model that we could compare this with, please feel free to share it with us here.
What's the Timeframe on All This?Not sure! The changeover, of course, will coincide with a major version release in order to not break any existing usage.
We already have a bunch of features earmarked for 0.6.0 that are completely orthogonal to this so it may or may not happen on that release.
We're also going to give some time for the community to give us feedback on this proposal. If you have an opinion on anything mentioned here, please share it with us in this thread!
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4