[[PageOutline]] = BOINC software development overview = BOINC is free software, distributed under the [http://www.gnu.org/copyleft/lesser.html Lesser General Public License] (LGPL), version 3 or later. The University of California holds the copyright on all BOINC source code. By submitting contributions to the BOINC code, you irrevocably assign all right, title, and interest, including copyright and all copyright rights, in such contributions to The Regents of the University of California, who may then use the code for any purpose that it desires. * [DevProcess The BOINC development process] * [DevProjects Help wanted - programming] * [DevQualityAssurance Quality Assurance Workflow] (under discussion) * [TranslateIntro Help wanted - translation] * [//email_lists.php boinc_dev], an email list for BOINC developers * [CodingStyle Coding style] * [DebugClientWin Debugging the client on Windows] == Get and build BOINC software == * [SourceCodeGit Get source code] * [SoftwarePrereqsUnix Software prerequisites] * [BuildSystem Building on Unix] * [PythonMysql Installing python-mysqldb] * [CompileApp Building applications] * [CompileClient Building the client] * [AndroidBuildClient Building the client on Android] * [VmCompatibility Linux VM for building 'compatible' client] == Design docs for current development == * BOINC on Android * [AndroidGuiDiscuss GUI discussion] * [AndroidBoincTodo GUI development items] * [AndroidBoincImpl Current implementation] * [AndroidBuildApp Building apps] * [AndroidBoinc Original planning document] * [VolunteerDataArchival Volunteer data archival] == Design docs for proposed development == * [LdapSupport LDAP support] * [PortalFeatures Scheduling for multi-user projects] * [JobPrioritization Job prioritization] * [UploadStatistics Maintaining upload statistics] * [LocalityNew Locality scheduling redesign] * [OpenId Support for OpenID] * [PrefsRemodel Remodel of computing prefs ] * [GpuSync support for synchronous GPU apps] * [WebTemplateProposal rewrite of HTML code using a Web Template Engine] * [WindowsIssues Windows Issues] == Implementation notes == === Client: general === * [ClientDataModel Client data model] * [ClientFiles File structure] * [ClientFsm FSM structure] * [ClientLogic Main loop logic] * [HostMeasurement Host measurements] * [HostId Host identification] * [MemoryManagement Memory management] * [wiki:Notifications GUI notices] * [ClientAppConfig Client app configuration] === Client: scheduling === * [ClientSched Client scheduling policies] === Client: packaging === * [//sandbox.php Sandbox implementation] * [ClientSetupLogicWin Windows installer (V5) ] * [UnixClientPackage Client package layout for Unix] * [ClientSetupWinSix Version 6 Windows installer, design] * [ClientSetupLogicWinSix Version 6 Windows installer, implementation] * [UnixClientPackage Unix client packaging] * [RpmSpec Spec info for RPMs] === Client: screensaver === * [ScreensaverEnhancements Screensaver enhancements] === Client: Manager === * [ManagerImpl BOINC Manager] * [ProjectSelect Redesign of Choose Project page] === Server: general === * [JobSizeMatching Job size matching] * [MultiUser Multi-user project features] * [RemoteJobs APIs for remote job submission] * [HomogeneousAppVersion Homogeneous app version] * [RuntimeEstimation job runtime estimation] * [CreditNew Credit system as of 5/2010 ] * [DataBase The BOINC database] * [BackendState Backend state transitions] * [BackendLogic The logic of backend programs] * [ServerDebug Debugging server components] * [ServerSecurity Notes on BOINC server security] * [DbDump Export statistics for 3rd-party sites] * [SingleJobImpl Single-job submission] * [AdaptiveReplication Adaptive replication] * [ValidationLowLevel Low-level validator framework] === Server: scheduler === * [SchedMatch Scheduler job matchmaking] === Server: Packaging === * [UnixProjectPackage Unix project packaging] === PHP code (web pages and RPCs) === * [PhpDb PHP database abstraction layer] * [StyleSheets Style Sheets] === Protocols === * [CommIntro Protocol overview] * [RpcProtocol The scheduling server protocol] * [RpcPolicy Scheduling server timing and retry policies] * [FileUpload Data server protocol] * [PersFileXfer Persistent file transfers ] * [XmlNotes XML notes] === Simulation === * [http://boinc.berkeley.edu/dev/sim_web.php The BOINC Client Emulator] * [http://gcl.cis.udel.edu/projects/emboinc/index.php EmBoinc BOINC server emulator] === Source code documentation (in progress) === * [//doxygen/api/html/index.html API] * [//doxygen/client/html/index.html Client] * [//doxygen/manager/html/index.html Manager] * [//doxygen/server/html/index.html Server components] * [//doxygen/web/html/index.html PHP code] === Miscellaneous === * [CondorBoinc BOINC/Condor integration] * [LowLatency Low latency computing] * [CreditProposal Credit system proposal] * [OrgGrid Organizational Grid Management] * [PythonAppDev Python-based simplified app development] * [PythonMw Python master/worker system] * [CrossProjectUserId Cross-project user identification] * [//loc_sim/ Simulator of a project using locality scheduling] * [PrefsImpl Preferences] * [TrickleImpl Trickle messages] * [VersionDiff How to see what has changed between two versions of an executable] * [XmlFormat XML formats] * [DiagnosticsApi Diagnostics API] * [Proposal/ProjectSimpleAccountCreation Simple Account Creation] * [wiki:BOINConPhones BOINC on Phones] == Historical == Design docs for old versions, or for ideas that never happened. * [VmApps Virtual machine apps (deprecated)] * [ClientSchedOld Old client scheduling policies] * [ClientSchedOctTen Client scheduling changes] * [GpuSched Client CPU/GPU scheduling] * [GpuWorkFetch Work fetch and GPUs] * [AutoUpdate Automatic update] * [AutoFlops Automated estimation of job characteristics] * [PythonFramework Python testing framework] * [//api_v4.php Version 4 runtime system] * [//mac_intel.php Mac/Intel plan] * [//mac_devgroup.php Old Mac project plan] * [//new_setup.php Design of version 5 setup] * [//menubar.php Mac Menubar] * [//suggestions.php Usability discussion] * [ScreensaverLogic Screensaver logic]