Max/Mojo license question
Reading the max/mojo license here: https://www.modular.com/legal/max-mojo-license
I can see the following:
use the SDK in an Application or standalone, or otherwise develop an Application in Mojo, for any Competitive Activity;Does that mean that, if I use the Mojo language (not Max) to develop something similar to Max or Ray (https://www.ray.io/) I'll be breaching the license terms? While I understand this license being applied to Max, the mere fact that even using the language Mojo limits me in my ability to build stuff is pretty concerning. I went from "very exicited to try out and build with Mojo" to "Ok lets see if the grass is greener elsewhere".
Modular: MAX & Mojo Community License
The MAX SDK ("MAX") & Mojo Community License governs what uses we allow with our software and how you can change the world with it.
Ray
Productionizing and scaling Python ML workloads simply | Ray
Ray manages, executes, and optimizes compute needs across AI workloads. It unifies infrastructure and enables any AI workload. Try it for free today.
21 Replies
If you're building anything that offers commercial cloud offering for AI you'll need to contact Modular first. Further questions should be directed to #licensing .
It is okay if you feel Max is not the right solution for you
Alternatively, you could wait until more parts of the stack are open source
If you're building anything that offers commercial cloud offering for AI you'll need to contact Modular first.That's the thing, where do you draw the line? Lets say tomorrow I want to develop a Django-like framework in Mojo rather than Python, and lets imagine this framework has a feature that allows users to run AI workloads. That means I could be breaching the license terms since the definition of "competitive activity" is up to Modular to define. Having a programming language artificially limited by those kind of licenses terms is pretty annoying imo. I would have no issue with this would these license terms only applied to Max.
How does a framework like Django get into allowing users to run AI workloads?
Anyway, the problem is
commercial
. You can use Mojo and Max freely in your AI workloads
In the example you gave you're providing a tool that could possibly allow users offer a commercial AI cloud offering, you're not offering one.
We already have frameworks in Mojo designed for Machine learning and auto differentiation, they don't worry about licensing
Modular very deliberately narrowed the scope of their license and removed as much ambiguity as the community could point out.How does a framework like Django get into allowing users to run AI workloads?Forget about Django, I used it as an example but lets imagine my framework would be able to run AI workloads, lets imagine it's something similar to Python Ray but in Mojo (not using any code from Max). Ok I understand what you're saying about the tool being commercial, so basically that means I would never be able to offer something like what Anyscale offers while giving away their open source solution like Ray to the open source community correct?
Specifically this - https://www.anyscale.com/product/platform
Anyscale
Unified Compute Platform for AI & Python Apps | Anyscale
Anyscale is a fully managed, unified compute platform that makes it easy to build, deploy and manage scalable AI & Python applications on Ray.
Without getting an enterprise license
Thanks @Tuatini for the question, and thanks to @Melody Daniel for answering as well.
The main restriction in our license is just developing an application or service whose "making commercially, publicly available .... for the primary purposes of providing artificial intelligence platform infrastructure to third parties". In this regard, if you feel you want to build something with MAX or Mojo that would touch this part of our license - you need to contact us.
The license is incredibly broad for almost anything - you are free build any library or application with our infrastructure that enables this - you just cannot commercialize it without our permission. We have been as open and transparent as we can be for our need to monetize our technology to enable the long term success of Modular, and we require you to contact us to discuss. This is similar to a Business Source License and we hope that https://www.modular.com/pricing FAQ answers most of your questions.
Modular: Pricing
AI software that work for everyone. Free to deploy and manage yourself. Contact us for enterprise scaling plans.
If it doesn't please contact us, or you can ping me directly - [email protected] - and happy holidays! π
Thanks @Tim Davis , that sums it up pretty nicely. Now I'm curious. Lets say I want to develop a product that does exactly that, which is "for the primary purposes of providing artificial intelligence platform infrastructure to third parties" (like Max and Anyscale Ray) but I develop this solution in Zig/Rust/Python etc... (not Mojo), but then I allow my users to run Mojo programs on that infrastructure solution. Would I be breaching the license terms of Mojo assuming my entire solution does not contain a single line of Mojo/Max code?
I ask this because Max/Ray are solutions that do not need to be "GPU optimized" and really, can be written in any general purpose language that exist as far as infrastructure is concerned. As far as I understand it's only the Mojo runtime that needs to run on individual machines/instances to really "access the performance mojo/Max have to offer".
Thanks, happy holidays to you too π
This post sounds so painful π I wasnβt old enough back in the heyday of Linux and BSD licensing. Was it really bad back then. I noticed this is where the divide is since Iβve been studying the history of contemporary technology
lol I know... sorry for that... I know my question is a bit annoying but I just want to make sure I invest my time learning a language that is "artificially restricted" because of the license. I have plans to eventually work on something like Ray/Max in the future but if I can't I'd rather invest my time in another language like Zig.
I definitely understand Modular's position on the matter, I just didn't expect it would also apply to the Mojo language.
The plan is that Mojo will become fully free and open source. Chris has give a timeline of 2 years
Oh ok, thanks for the precision π
Linux has always been pretty clear in the "use what you want, you need to make public any changes you distribute" license. Are you thinking of the Unix wars?
There were Unix wars? I was reading into Alan Cox - Linux, Theo de Raadt - NetBSD, FreeBSD and those guys. I heard a bit about the early days of Microsoft and Apple. And Iβm pretty familiar with Zuckβs deal since heβs from my generation.
Unix wars
The Unix wars were struggles between vendors to set a standard for the Unix operating system in the late 1980s and early 1990s.
The unix wars are why POSIX exists.
Sheesh. I see a lot of the beginnings of lot of big name companies in here
Hey @Tuatini - I really appreciate your questions.
Firstly, its important to remember - we want the world to build on our infrastructure, we've spent 3 years rebuilding the CPU+GPU stack from the ground up so the world can use it and everyone who joins the MAX community can go and build incredible things with it. Certainly, as we've highlighted in our community videos and also as Chris/myself/the team has highlighted in the discord and on our forum - for the next year or two, we are really focused on wanting Mojo to be the best way to program GPUs and we strongly believe that to do that you need MAX. For example, running custom GPU ops in the construction of a Graph (https://forum.modular.com/t/experimental-examples-of-custom-cpu-gpu-operations-in-mojo/348/2) and so on. All this is to say - MAX and Mojo really are better together and thats a radical part of our focus as we introduce GPU programability more broadly in 2025.
Now to your question - would be happy to discuss of course, theres obviously a bunch of detail and would love to understand why you wouldnt just want to use MAX π - but that said, our license wouldn't prohibit, or require you to contact us, for enabling your users to run MAX or Mojo on your proposed Zig/Rust/Python stack themselves. Our license would not allow you to commericalize our infrastructure however - as thats literally what we are doing and its obviously competitive. To make it clear - developers could can run it privately themselves (e.g. setup a Ray Cluster on AWS and run/manage MAX themselves) for their own applications without issue, but you cannot offer our infrastructure for sale (e.g. setup Ray Cluster and MAX, manage it and then charge others for it) to other companies without contacting us.
Stepping back, the goal here is really about ensuring we have a clear commerical path to charge enterprises for our infrastructure, while enabling developers around the world to build on top of it. As we say in FAQ - there are so many things you can do with MAX - that if you really want to target building "AI infrastructure for enterprises" in the same way we are - then why don't you just come and help us do that π
That's perfectly clear now, thanks a lot @Tim Davis π . I will certainly find time to work on a few Mojo/Max projects, just waiting for the language specs to stabilize and get proper tooling (Debugger in Jetbrains IDEs). For the moment the language is moving too quickly for my taste π