This is a read-only snapshot of the ComputerCraft forums, taken in April 2020.
LNETeam's profile picture

UKernel

Started by LNETeam, 28 March 2015 - 09:48 PM
LNETeam #1
Posted 28 March 2015 - 10:48 PM
I've decided to release my kernel framework for all the programs that I make. This API is continually in development and features will be added over time, however, there already is a lot that the API can do for you.

The kernel comes with a very simple way for you to sandbox and springboard your apps. UKernel allows you to create app containers with event handlers and a very simple way to deal with managing threads and coroutines. You don't have to worry about managing huge amounts of code to start and control your programs. For example, if I wanted to create a display and click manager, I could do this very easily.


	local container = kernel.AppContainer({function() shell.run("path_to_display") end, function() shell.run("path_to_click_event_manager")})

	container:AddSandboxDefinition()
	container:StartContainer()

It's that simple! These two programs will run simultaneously and can communicate by queing events for eachother to catch

UKernel also comes with a class system. The class system allows you to create a template that can "instantiate" another instance. This allows for inheritance as well. The extensive internal documentation explains how this works and allows for much more concise code and a cleaner look while delivering adaptability and inheritance.

In addition, it comes with a few useful datatypes such as Stack and Dictionary. Stack allows for a way to dynamically push and pop items for a queue like system. Dictionary is also very simple as its a key->value system.

It also comes along with a few useful utilities such as file logging, text alignment, importing all with extensive documentation outlining what each function does, parameters, and return values

As always, this program remains in development and features are currently being worked on such as display buffers and more.

The goal of this library is to make your life simpler by making these tools easily available and saves time.

Thank you!

Also, if you find an issue, please post it to the GitHub repo with a new issue. I look all the time.

Installed from my "apt-get" utility: apt-get install ukernel

or

GitHub repo: https://github.com/L...nel/tree/master
Edited on 28 March 2015 - 09:52 PM
Lupus590 #2
Posted 28 March 2015 - 10:55 PM
shouldn't this be in the API or OS section?

simple sandboxing sounds useful though
Edited on 28 March 2015 - 09:55 PM
InDieTasten #3
Posted 28 March 2015 - 11:30 PM
Without looking into your stuff(which sounds really promising to me) what differs your dictionary from a standard lua table?
LNETeam #4
Posted 29 March 2015 - 02:28 AM
shouldn't this be in the API or OS section?

simple sandboxing sounds useful though

woops, thought I clicked API's. my fault

Without looking into your stuff(which sounds really promising to me) what differs your dictionary from a standard lua table?

right now, not a whole lot. I'll be adding a lot more to make complex operations simple by the use of a single method.
Lupus590 #5
Posted 29 March 2015 - 02:47 PM
if you use the report link, you can request that it gets moved