I created a software compiler, that produces some object code from original source code, and designed processes around it such as documentation and pre-processing. I plan to sell this tool providing monthly subscription fees of X amount, given that software compiled with my tool will be published only on my registry (there are other registries). Is it enforceable to restrict people to publication of their software compiled with my tool only on my registry and no other registries? I'd like to build my own ecosystem and lead in my own way, so ideally I want to include a clause in EULA, saying that you cannot publish your software compiled with my tool online, however I don't think this is enforceable therefore will have no effect.

I know I can use marketing to make people want only to publish on my registry, but my registry costs money whereas another one is free, and I don't want code compiled with my tool to be published on a free registry, but it doesn't contain any of my code. Maybe if I include the smallest bit of algorithm to the output of the compiler, under a license that prevents redistribution on other platforms, I can enforce it? heh I think that's what I'm going to do. But then people can remove it manually by modifying the object code, so another question is if I can prevent people from modifying the output my compiler? I know it sounds like drastic measures but I really want to gain my own user base. It is because another registry is my competition and they didn't create a compiler so why should people use my compiler to publish there?

  • The "easiest" way to legally bind the output would be to have your compiler include a small binary library, something that performs some foundational functionality (memory management, probably). You can legally control the distribution of this library, which could enforce the use of your registry. You may have a hard time preventing this library from being replaced. However, what you're attempting to do is likely to be unpopular, even if your tools provide the (perceived) extra value. Note that most compilers are free and unencumbered, even if the tools are not (always). Nov 30, 2020 at 7:20
  • @Clockwork-Muse yes using a small library is a nice solution and as you say, the second question is how to make sure it's kept in there. thanks. popularity isn't my thing but on the other hand, being popular and earning net 0 isn't much better. I mean, I invented something, and I want to share it with people, but on the condition, that they listen to me as how to apply it. I do look into providing a full perpetual license option so that developers can do whatever they want to, considering that my work will be replicated anyways as soon as the method is public since it's not really patentable. Nov 30, 2020 at 11:04

2 Answers 2


You can license the use of your IP only for certain uses, for example (most commonly) "non-commercial". The general template of permission is "You have permission to ___ as long as you ___". What the user is permitted to do, in your scheme, is something along the lines of "only distribute the output in this manner", or "not distribute code developed with this tool anywhere else". It's up to you to prove that someone violated that condition, if they did.

  • And how does that bind me who finds the code and republished it elsewhere having never seen or agreed to the EULA.
    – Dale M
    Nov 28, 2020 at 22:39
  • It doesn't, if only binds the guy who used the tool to create it and ignored the EULA.
    – user6726
    Nov 29, 2020 at 0:11
  • But what I'm asking is, is that enforceable in legal terms. If I say on my shop "you're not allowed to watch YouTube on premises" that doesn't make any sense and there's no law that can prevent people from doing it. What you've answered seems like a clause for a license to use something like an artwork or font, but I'm giving people a tool to compile their code, so it's their code that will be published, although it was made with my compiler. I don't believe it's enforceable to prevent people from doing whatever they want to with their work, which was processed by a compiler... Nov 29, 2020 at 14:47
  • 1
    You can only get what you want by licensing: that is how Microsoft made billions of dollars. Sounds like you're looking for a technical solution, not a legal one.
    – user6726
    Nov 29, 2020 at 16:42

First, you could make your compiler output encrypted object code, so that it can only be installed from your registry (which is the one that will be able to decrypt it).

In fact, you could design your compiler to be completely server-side. That would make more sense for the subscription model, imho.

Second, if you also want to let the developer run it locally without going through your registry, the resulting object code might contain a check so it only works on the computer it was compiled in.

You are trying to create a vendor lock-in of your registry through your compiler. Note, however it may backfire. There are probably other compilers out there which are at least acceptable, if not better than yours. Enforcing to use your registry will make your compiler less attractive. If your compiler is really good, much better than the competition, it may work. But you may also find that nobody uses your compiler (well, just a few people) because of that, so your registry damages your compiler.

Please note that your approach will not make you popular among the developers (they probably won't want to pay for using your registry, either. Are you providing a proper value for what you want to receive?). You should consider who needs the other party most. A registry with no developers using it, and thus almost no software will have little future.

I would recommend you, rather than trying to forbidding them from using another registry (if they need to use a different compiler for the other registry, they may as well not use your compiler at all, and perhaps neither your registry), to make them upload it to your registry. And to let them to also upload it anywhere else they may want to, if they wish.

This has the consequence of getting a lot of software into your registry, even if the developers goal was to have it onto another. And you will find that, as it's already on one registry, some will not bother with the manual process of uploading to a different one. If your registry is the one with most software, that will attract the users, which in turn will make the developers want to be in your registry.

Additionally, note that your requisites may restrict uploads of FOSS software, which would probably have been desirable.

Finally, I don't clearly understand your profit model, either. Are they paying for the compiler or for publishing into your registry? Would they need to pay you for getting there an app compiled with a different compiler? Bundling with your compiler a deal for having N apps uploaded on your registry / N months of using your registry would make some sense, but if the developer didn't initially intend to use your registry, you won't be able to have them pay to use a compiler that can only be used with that registry.

A model where you get a percentage of sales made through your registry may be more solid. That's what other markets are doing, and seems to work relatively well for them. That's not to say you cannot successfully use a different model, but you should carefully study it in advance from every angle.

  • The OP is not asking for engineering advice or business options; he's asking if he will be able to enforce a EULA or license on his chosen method. Nov 29, 2020 at 0:28
  • @BlueDogRanch I agree this is not a 'law' answer. However, I think it is appropriate for the user. I think the OP is really asking how to distribute its compiler so that it can only be used with its registry, with the EULA clause the Y solution he came up with. I am approaching the general problem.
    – Ángel
    Nov 29, 2020 at 0:54
  • BlueDogRanch although you're right it's not law strictly speaking, I appreciate their contribution. @Ángel I don't want FOSS because that's everything I'm trying to avoid. It's not desirable because FOSS is death to professional software, and a market for professional software is what I'm building. Therefore, I want people to upload to my registry, having obfuscated the source code, and let other users and companies buy uploaded software (and earn commission). Compiling server-side is a good idea as well and I'm considering that also but that's expensive for me. Please feel free to discuss. Nov 29, 2020 at 14:44
  • @TypeEngineering ? I didn't say that you should open source your software. Not even that you shouldn't charge for your compiler! Maybe some of my paragraphs wasn't clear if you got that idea. What I did talk was about the developers willingness to pay, and the value provided. And about a commission model. You are getting paid a monthly subscription, I doubt it's really expensive, Plus you could always adapt into the subscription model. i would expect that paying the developers of your compiler, or dealing with the fraud associated with using your registry to be far more expensive.
    – Ángel
    Nov 29, 2020 at 22:12
  • and I understood, what I said that I don't want foss on my registry and I don't want anything to do with foss. I want to gather professional people who understand that open source is a hobby that has ruined the industry, and allow them to sell software. when their products depend on other pieces on the registry, the cost will be passed on to the consumer, in some proportion, but will be cheaper as the dependency isn't provided as API, but embedded as as object code. everyone's telling me it crazy idea but I think it's crazy that a bunch of open sources without qualification dictate the market. Nov 30, 2020 at 10:47

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .