Programs
Start other programs, talk to them, and steer your own run.
ProcessService starts programs with no window of their own and streams their output line by line, a ChildProcess is one it started, and RunService is your run: its arguments, Stopping and Quit. Up next: ProcessHandler and ProgramService, locks and job queues, Windows notifications, the clipboard, the computer's load, Actors for heavy work, and Bindables and MessagingService for programs that talk to each other. shot check knows these already; they don't run yet.
Runs today
ProcessServiceStart other programs from yours: stream their output line by line, write to their input, wait for them, and kill them with everything they started.ChildProcessA program you started, live in the tree: its output line by line, its input, its exit code.RunServiceYour program's own run: its command-line arguments, its folder, its environment, a clean exit code and a last word before it stops.
Up and coming
shot check knows these classes today; programs run them once the native runtime lands.
ProcessHandlerStart a program, read its output line by line, write to it and stop it cleanly, or pick up one that is still running.ProgramServiceYour running program itself: its arguments, environment, standard folders, a data folder of its own and a clean way to end.ProgramLockMake sure only one copy of a tool acts at a time, across every program on the computer.JobQueueRun work a few pieces at a time, with pausing and retries, and a Job for each piece to wait on, show or cancel.JobOne piece of work in a queue: wait for its result, see where it is, or cancel it.NotificationServiceShow a Windows notification when something needs you and your program's window is hidden.NotificationOne Windows notification your program showed: replace it with a newer one, or hear when it is clicked.ClipboardServiceCopy text to the clipboard and read it back from your program.MachineServiceSee how busy the computer is, overall and per program, so heavy work can wait its turn.ActorRun heavy work in a process of its own, so your program never freezes while it runs.BindableFunctionLet projects call each other without requiring each other.BindableEventTell other projects something happened, without requiring them.MessagingServiceSend one message to every program on this computer that listens on its topic, with no addresses to look up.
