API reference: Difference between revisions
No edit summary |
(Restructure and refactor somewhat) |
||
Line 1: | Line 1: | ||
= Developer's API References = |
|||
The OLPC platform includes a large number of libraries and services. This page attempts to gather links to reference works which can be used when programming the XO laptops. |
The OLPC platform includes a large number of libraries and services. This page attempts to gather links to reference works which can be used when programming the XO laptops. |
||
Line 15: | Line 13: | ||
Where official reference documentation isn't available, PyDoc-generated documentation is provided. You can generate local copies of the PyDoc-generated documentation from a running official image. Script is available via <tt>bzr branch http://www.vrplumber.com/bzr/autodoc</tt> |
Where official reference documentation isn't available, PyDoc-generated documentation is provided. You can generate local copies of the PyDoc-generated documentation from a running official image. Script is available via <tt>bzr branch http://www.vrplumber.com/bzr/autodoc</tt> |
||
=== GUI Libraries === |
|||
Libraries for creating standard Windows-Icon-Menu-Pointer (WIMP) GUI applications. |
|||
* [http://www.vrplumber.com/sugar-docs/sugar.html Sugar] [[Sugar Architecture]] -- core UI libraries |
* [http://www.vrplumber.com/sugar-docs/sugar.html Sugar] [[Sugar Architecture]] -- core UI libraries |
||
* [http://www.pygtk.org/reference.html Gtk], [http://www.vrplumber.com/sugar-docs/gtk.html (PyDoc)] -- GUI library underlying the Sugar UI, includes the Accessibility Toolkit (ATK) binding [http://www.vrplumber.com/sugar-docs/atk.html (PyDoc)] and the [http://www.pygtk.org/docs/pygobject/index.html GObject], [http://www.vrplumber.com/sugar-docs/gobject.html (PyDoc)] non-GUI core library |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
=== High-Level Widgets === |
|||
GUI (GTK) controls which expose the functionality of entire complex applications for use by other projects. |
|||
* [http://www.vrplumber.com/sugar-docs/abiword.html Abiword] -- GTK widget embedding the Abiword Word-Processor |
* [http://www.vrplumber.com/sugar-docs/abiword.html Abiword] -- GTK widget embedding the Abiword Word-Processor |
||
* [http://www.vrplumber.com/sugar-docs/ |
* [http://www.vrplumber.com/sugar-docs/hulahop.html HulaHop] -- embeds a Gecko 1.9 (Firefox 3.0 ocore) rendering widget XXX confirm that's what it really is |
||
* |
* [http://www.vrplumber.com/sugar-docs/evince.html Evince] -- PDF (and similar) document viewer as a GTK widget |
||
=== Multimedia Libraries === |
|||
Libraries that deal with multimedia and gaming functionality. |
|||
* [http://pygstdocs.berlios.de/ GStreamer] [http://www.vrplumber.com/sugar-docs/gst.html (PyDoc)] -- multimedia streaming library |
* [http://pygstdocs.berlios.de/ GStreamer] [http://www.vrplumber.com/sugar-docs/gst.html (PyDoc)] -- multimedia streaming library |
||
⚫ | |||
* [http://www.vrplumber.com/sugar-docs/olpcgames.html OLPC Games] -- PyGame wrapper that makes working within the OLPC-XO environment relatively straightforward (Strongly recommended for PyGame usage on the XO!) |
|||
* [http://www.pygame.org/docs/ PyGame] -- GUI library suitable for Sprite-based 2D game development |
|||
=== Communications and Networking === |
|||
Libraries for connecting to other processes, either on the local machine or across the network |
|||
* [http://dbus.freedesktop.org/doc/dbus-python/ D-BUS] [http://www.vrplumber.com/sugar-docs/dbus.html (PyDoc)] -- desktop messaging (Remote Procedure Call (RPC) and Asynchronous Signalling) engine |
|||
* [http://www.vrplumber.com/sugar-docs/telepathy.html Telepathy] -- buddy and connection management including cross-machine RPC over D-BUS |
* [http://www.vrplumber.com/sugar-docs/telepathy.html Telepathy] -- buddy and connection management including cross-machine RPC over D-BUS |
||
* PyXPCOM -- Library for controlling XPCOM applications (currently just XULRunner on the XO) XXX Should be available, but doesn't appear to be (that is, import xpcom doesn't work) |
|||
=== Support Libraries === |
|||
Libraries which aren't neither GUI nor multi-media |
|||
* [http://www.vrplumber.com/sugar-docs/secore.html SECore] -- search engine implementation |
* [http://www.vrplumber.com/sugar-docs/secore.html SECore] -- search engine implementation |
||
⚫ | |||
* [http://www.vrplumber.com/sugar-docs/json.html JSON] -- Javascript Object Notation parser/linearisation library |
* [http://www.vrplumber.com/sugar-docs/json.html JSON] -- Javascript Object Notation parser/linearisation library |
||
* [http://www.vrplumber.com/sugar-docs/urlgrabber.html UrlGrabber] -- url downloading library |
* [http://www.vrplumber.com/sugar-docs/urlgrabber.html UrlGrabber] -- url downloading library |
||
* [http://www.vrplumber.com/sugar-docs/ |
* [http://www.vrplumber.com/sugar-docs/olpc.html OLPC] -- the data-store implementation |
||
* [http://www.pygtk.org/reference.html Gtk], [http://www.vrplumber.com/sugar-docs/gtk.html (PyDoc)] -- GUI library underlying the Sugar UI |
|||
=== Extraneous Libraries === |
|||
* [http://www.pygtk.org/docs/pygobject/index.html GObject], [http://www.vrplumber.com/sugar-docs/gobject.html (PyDoc)] -- Core (non-GUI) library of the GTK system |
|||
⚫ | |||
Libraries which are present in the current builds, but not particularly "part" of the Sugar environment and which may be removed eventually. |
|||
⚫ | |||
⚫ | |||
* [http://www.vrplumber.com/sugar-docs/yum.html Yum] -- package manager for RPM-based distributions |
* [http://www.vrplumber.com/sugar-docs/yum.html Yum] -- package manager for RPM-based distributions |
Revision as of 03:16, 2 September 2007
The OLPC platform includes a large number of libraries and services. This page attempts to gather links to reference works which can be used when programming the XO laptops.
Platform Requirements
- Human interaction guidelines (HIG) for Sugar activities
- Activity Bundles describes the packaging structure
- Understanding sugar code provides an overview of how Sugar interacts with activities, including startup and shutdown, useful to understand the environment in which your activity will run
- Bitfrost summary (full spec) the security system which will control activities and their interaction with the system and other users
- Software components is a somewhat old document describing the various pieces of software and libraries involved in the system.
Python Libraries
Where official reference documentation isn't available, PyDoc-generated documentation is provided. You can generate local copies of the PyDoc-generated documentation from a running official image. Script is available via bzr branch http://www.vrplumber.com/bzr/autodoc
GUI Libraries
Libraries for creating standard Windows-Icon-Menu-Pointer (WIMP) GUI applications.
- Sugar Sugar Architecture -- core UI libraries
- Gtk, (PyDoc) -- GUI library underlying the Sugar UI, includes the Accessibility Toolkit (ATK) binding (PyDoc) and the GObject, (PyDoc) non-GUI core library
- Hippo Canvas -- canvas mechanism used by the Sugar.graphics libraries
- Cairo (PyDoc) -- Low-level vector graphics rendering library
- RSVG -- Library for rendering SVG text from files/strings onto Cairo Canvases
- Pango -- text layout and rendering engine
High-Level Widgets
GUI (GTK) controls which expose the functionality of entire complex applications for use by other projects.
- Abiword -- GTK widget embedding the Abiword Word-Processor
- HulaHop -- embeds a Gecko 1.9 (Firefox 3.0 ocore) rendering widget XXX confirm that's what it really is
- Evince -- PDF (and similar) document viewer as a GTK widget
Multimedia Libraries
Libraries that deal with multimedia and gaming functionality.
- GStreamer (PyDoc) -- multimedia streaming library
- CSound -- the CSound audio-generation library
- OLPC Games -- PyGame wrapper that makes working within the OLPC-XO environment relatively straightforward (Strongly recommended for PyGame usage on the XO!)
- PyGame -- GUI library suitable for Sprite-based 2D game development
Communications and Networking
Libraries for connecting to other processes, either on the local machine or across the network
- D-BUS (PyDoc) -- desktop messaging (Remote Procedure Call (RPC) and Asynchronous Signalling) engine
- Telepathy -- buddy and connection management including cross-machine RPC over D-BUS
- PyXPCOM -- Library for controlling XPCOM applications (currently just XULRunner on the XO) XXX Should be available, but doesn't appear to be (that is, import xpcom doesn't work)
Support Libraries
Libraries which aren't neither GUI nor multi-media
- SECore -- search engine implementation
- JSON -- Javascript Object Notation parser/linearisation library
- UrlGrabber -- url downloading library
- OLPC -- the data-store implementation
Extraneous Libraries
Libraries which are present in the current builds, but not particularly "part" of the Sugar environment and which may be removed eventually.