Skip to content

Developing and deploying apps

David Anderson edited this page Mar 10, 2026 · 3 revisions

Client runtime environment

The BOINC client runs apps in a particular way. Each job runs in its own directory; its input and output files either reside in that directory, or are linked to a 'project directory' where jobs can share files. The app communicates with the BOINC client by sending messages via shared memory.

  • This is described here. You don't need to know the details but you should understand the basic ideas.

Plan classes

App versions are associated with a 'platform' (CPU type and OS type); BOINC will only run them on that kind of computer. By default they're assumed to use 1 CPU. But some app versions have additional properties and requirements: they may use multiple CPUs, or they may require a particular GPU. These needs are described by 'plan classes'.

Tools

Native apps

A native app is linked with the BOINC runtime library.

Wrappers

'Wrappers' let you run existing executables under BOINC.

Multicore applications

GPU applications

Adding graphics

Nonstandard application types

Languages other than C/C++

Low-level APIs

Building applications

Debugging applications

Beta-testing applications

Customizing the scheduler

Clone this wiki locally