Create a gist now

Instantly share code, notes, and snippets.

Planning Rust library of low-level for multimedia

Thanks to languages like Go and Rust the developers can now build software for the command line that can run in every architecture and system where those languages can compile. And this is awesome, you code an application which can be compiled in Windows, Mac OS or Linux, getting a full market of users just like with web applications.

Now, the next step is create graphical applications using the same code for those systems. To get this goal is necessary to build libraries of low level that provide access to graphics, audio and input. Later can be built a graphical toolkit. Step by step.

But to move forward with a project like this one is necessary a lot of time, effort and mainly engineers with knowledge at low level about graphics and audio. So the only way to speed up all this development is having and/or getting money.

Note: although I've named to Go, I've to say that the libraries will be developed in Rust because its memory model provides a lot more power and flexibility than Go which is necessary for libraries of low level. Anyway, if you are a Go developer, don't worry because I'm sure that the Rust guys will add some day a mechanism to access to Rust libraries from Go day but they're busy now in other topics.

About the license. I discard GNU licenses because I want that they also can be used in propietary software. I also discard the simple licenses like MIT and BSD because they don't protect against the patents. So I choose between Apache 2.0 and MPL 2.0. And my preference is MPL 2.0 because it is designed to encourage contributors to share modifications they make to the code (like GPL), while still allowing them to combine the code with code under other licenses, open or proprietary (like BSD), with minimal restrictions. It is also compatible with both the Apache License and GPL.

Also, if I can not get money outside of me, then my idea is to add a clause where i.e. the companies earning more than 200k/year would have to pay a license once.

One way to finance it is through a startup where I'll be working hard for 6 months on this new year but I'm realistic since it could be a failure or I could not get money from it like I hope. So I am here to ask advices to planning it correctly:

  • I've thinked in to use a platform for crowfunding but I don't think that there is people interested in supporting a project where they are not going to get a real value into a short time. One option would be to know if developers would be interested in financing this type of project since finally all we would be beneficiaries, and only those financing it would have access to code before of releases, and voice to decide about the development.

  • The another option would be to ask money to big software companies, at least to companies that build desktop software like Adobe. I don't think that Google would be interested because its business is related a web apps/services.

  • Would be better to have an office where all peple can work into the same space or that every one can work from their houses?

  • Which would be a fair salary having in mind that the libraries will be free/open source? Does the salary should be the same for everyone, regardless of he's working from his country (workers from home). One advantage of Europe, at least for entrepreneurs without economic resources are the low salaries of engineers respect to USA, and there are great engineers in Eastern Europe (Russia, Romania, Poland).

Thanks for your time!


Just my thoughts over graphics libraries

There is not serious competition in the graphics world so there is space for another player.

DirectX is a propietary library specific to Windows so I'm not going to wrapping around it because I would be sold to a library of closed code where Microsoft could remove some APIs in new versions of Windows, like it has already happened.

OpenGL is commercially unviable to use it on Windows, due to the fact that it just doesn't works on most machines by default.

Then, the great failure of building libraries over open specifications is that every company finishes developing what they want; you only have to see how has been implemented HTML and CSS in the different browsers. This would be solved whether they there would be worked in the same C/C++ libraries. Cooperation vs Isolation.

In addition, there are some issues with the Khronos Group:

  • API developers are not game developers. The API developers of an open standard need to be communicating with the community instead of make it with hardware vendors.

  • There was a total stop of communication on all levels regarding all topics, it was impossible to reach members of the group.

So I'm not going to repeat the same error. When you have a library fully developed and documented that works in the main platforms then the developers will be happy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment