Portable Operating System Interface for Screeps
See POSIX.
- Host OS loads a foreign bundle in its own way (usually an import somewhere)
- Host calls
install(registry: IPosisProcessRegistry)
on the bundle (see IPosisBundle) - Bundle registers all its processes by calling
registry.register(...)
for each of them (see IPosisProcessRegistry). This puts processes in host's general process registry (details are specific to particular host). - Host starts one or more bundle's processes, possibly using optional
rootImageName
specified by the bundle. - A bundle process gets constructed with
IPosisProcessContext
-- a host provided handler carrying memory accessor and other goodies. See IPosisProcessContext. - Eventually host runs the process by executing its
run()
method. See IPosisProcess. - Process queries interfaces that the host provides and uses them to do evil or launch more child processes.
Host OS must provide at least IPosisKernel
implementation, and ideally all other defined extensions.
This project provides typescript interfaces that serve as is in typescript projects and as documentation for poor souls using plain JS.
To use types in typescript project, install typings
$ npm install typings --saveDev
Add or modify typings.json
with
{
"name": "whatever",
"globalDependencies": {
"posis-api": "github:screepers/POSIS/dist/index.d.ts#master"
}
}
Make sure typings are included in tsconfig.json
"include": [
"typings/**/*.d.ts"
]
For an example see test bundle.
Base kernel, exposes ways to start/stop/reparent or find a process. IPosisKernel