GNUstep
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)
|
Developer(s) | GNUstep Developers |
---|---|
Stable release | make 2.9.0, base 1.28.0, gui 0.29.0, back 0.29.0
/ May 6, 2021 |
Preview release | only in the SVN software repository
|
Repository | |
Written in | Cross-platform |
Type | Widget toolkit |
License | GNU General Public License for the applications GNU Lesser General Public License for the libraries. |
Website | gnustep |
GNUstep is a free software implementation of the Cocoa (formerly OpenStep) Objective-C frameworks, widget toolkit, and application development tools for Unix-like operating systems and Microsoft Windows. It is part of the GNU Project.
GNUstep features a cross-platform, object-oriented
History
GNUstep began when
Software architecture
Rendering
GNUstep contains a set of
The
- cairo – default backend using the Cairo 2D graphics library.
- winlib – default backend on Microsoft Windows systems. Cairo and Windows API variants.
- art – old (deprecated) backend on unix-like systems. Uses the vector-based PostScript-like 2D graphics library Libart.
- xlib – old (deprecated) X11 backend.
Paradigms
GNUstep inherits some design principles proposed in OPENSTEP (GNUstep predates Cocoa, but Cocoa is based on OPENSTEP) as well as the Objective-C language.
- Model–view–controller paradigm
- Target–action
- Drag-and-drop
- Delegation
- Message forwarding (through NSInvocation)
Other interfaces
In addition to the Objective-C interface, some small projects under the GNUstep umbrella implement other APIs from Apple:
- The Boron library aims to implement the Carbon API. It is very incomplete.[5]
- The CoreBase library is designed to be compatible with Core Foundation. It is not complete enough for the Base (Foundation Kit) component to simply be a wrapper around it.[6]
- The QuartzCore library implements Core Animation APIs.[7] The Opal library implements Quartz 2D.
As of February 2020[update], there are no projects that build the
Applications
Here are some examples of applications written for or ported to GNUstep.[8]
Written from scratch
- Addresses, an address/contacts manager
- Étoilé, a desktop environment
- e-mail client
- GNUstep Database Library 2, an Enterprise Objects Framework clone
- GNUstepWeb, an application server compatible with WebObjects 4.x
- Mac OS X. It supports the old .nib files as well as its own .gorm file format.
- GWorkspace, a workspace and file manager
- Grr, an RSS feed reader
- Oolite, a clone of Elite, a space simulation game with trading components
- PRICE, imaging application
- ProjectCenter, the Project Builder or Xcode equivalent.
- TalkSoup, an IRC client
- Terminal
- Zipper, a file archiver tool
Ported from NeXTSTEP, OPENSTEP, or macOS
- Adun
- BioCocoa
- Chess
- Cenon
- DoomEd
- EdenMath
- Eggplant
- Emacs
- Fortunate
- Gomoku
- NeXTGO
- PikoPixel
- TextEdit
- TimeMon
Forks of GNUstep
- WinObjC suite consisting of various parts of GNUstep and Microsoft's own implementations of things like the Cocoa Touch API.[9]
Class capabilities
Foundation Kit
The Foundation Kit provides basic classes such as wrapper classes and data structure classes.
Application Kit
The
See also
- Darling (software), a compatibility layer that relies on GNUstep
- GNUstep fat bundle
- GNUstep Renaissance, framework for XML description of portable GNUstep/Mac OS X user interfaces
- Miller Columns, the method of file tree browsing the GWorkspace File Viewer uses
- Property list, often used file format to store user settings
- StepTalk, Scripting framework
- Window Maker, a window manager designed to emulate the NeXT GUI as part of the wider GNUstep project
References
- ^ Ported from NeXTSTEP. Recent builds, when built with libobjc2, can use a newer version ported from Mac OS X Snow Leopard
- ^ "GNUstep Developer Tools - RIGS". www.gnustep.org. Retrieved 10 April 2018.
- ^ GScheme Archived 2005-12-18 at the Wayback Machine
- ^ "GNUstep History". gnustep.made-it.com. Retrieved 10 April 2018.
- ^ "gnustep/libs-boron: Boron is the atom that comes before carbon". GitHub. GNUstep. 23 March 2019.
- ^ "gnustep/libs-corebase". GNUstep. 19 November 2019.
- ^ "gnustep/libs-quartzcore". GNUstep. 11 December 2019.
- ^ "Category:Applications - GNUstepWiki". wiki.gnustep.org. Archived from the original on 23 March 2021. Retrieved 10 April 2018.
- ^ "GNUstep Objective-C Runtime 2.0". GitHub.
Note: Microsoft's WinObjC project contains a friendly fork of this library that includes a work around for the incremental linking issue.
External links
- Official website
- GNUstep Application Project
- A 2003 interview with GNUstep developer Nicola Pero Archived 2007-01-07 at the Wayback Machine
- FLOSS Weekly Interview with Gregory Casamento and Riccardo Mottola from GNUstep
- GNUstep on Debian, FreeBSD, MacPorts
- NEXTSPACE desktop environment, based on GNUstep