The GNU package
Table of Contents
This is the list of packages in the gnu namespace.
All of these packages are free
software and unless otherwise noted, the distribution terms are
the GNU General Public License (20k
characters) (GNU GPL).
Just because a package is listed here it does NOT mean that it forms
part of the GNU project. In the future we would like that to be the case
so if you wish to use the GNU namespace please contact us at
javaweb-submit@gnu.org.
If you don't contact us and use our namespace anyway we cannot gaurantee
that there will not be a future name clash with your package.
Each package name in the list links directly to javadoc for the package
(if it exists). A link to the home page of the package, or the project the
package is part of, is given to the right of each package name.
- gnu.bhresearch.pixie (home page)
Pixie is a small, fast file format for scalable vector images.
- gnu.brl (home page)
A Scheme based language for implementing server side database
reports on the web.
Distribution terms: GNU GPL
plus exception (no restrictions if code used unchanged).
- gnu.bytecode (Kawa project)
A package to create, read, write, and print .class files.
Distribution terms: GNU GPL
plus exception (no restrictions if code used unchanged).
- gnu.classpath (Classpath project)
This package (and all subpackages) is reserved for the Classpath project.
- gnu.commonlisp (Kawa project)
A very incomplete implementation of Common Lisp, using
Kawa to compile Common Lisp to Java bytecodes.
Distribution terms: GNU GPL
plus exception (no restrictions if code used unchanged).
- gnu.expr (Kawa project)
A package for representing various sub-classes of
Expression
, analizing them, and generate bytecode
for them. Uses the gnu.bytecode
package.
Distribution terms: GNU GPL
plus exception (no restrictions if code used unchanged).
- gnu.free (home page)
Software for secure electronic voting.
- gnu.gdk (home page)
Java bindings for the GDK library
- gnu.getopt (home page)
GNU Getopt in Java
Distribution terms: GNU Library GPL
- gnu.glade (home page)
Java bindings for libglade to be used in the Java-GNOME project
- gnu.gnome (home page)
Java bindings for many of the GNOME libraries
- gnu.GraphPanel
Classes for manipulating connected nodes and their attributes.
- gnu.gtk ()home page)
Java bindings for the GTK library
- gnu.gui.spread (Home page)
A simple and extendable spreadsheet class (also includes
gnu.gui.dialogs and gnu.file_io)
- gnu.inet
A package used only for sub-packages. DO NOT use this
package name for your classes.
- gnu.inet.http (Paperclips project)
A number of generic tools for accessing and implementing HTTP servers and clients.
- gnu.inet.mime (Paperclips project)
Some tools for accessing and manipulating MIME types (it also includes
a base64 implementation).
- gnu.inet.tftp
A TFTP implementation. Downloadable from here.
- gnu.java (Classpath project)
This package (and all subpackages) is resserved for the Classpath project.
- gnu.javax.swing Classpath project)
This package (and all subpackages) is resserved for the Classpath project.
- gnu.jel (Home page)
Java Expression Library
- gnu.jemacs (JEmacs project)
A project to re-implement Emacs using
Kawa
to translate Emacs Lisp to Jave bytecodes.
Distribution terms: GNU GPL.
- gnu.kawa (Kawa project)
Various sub-packages that are part of Kawa.
Distribution terms: GNU GPL
plus exception (no restrictions if code used unchanged).
- gnu.krl
(The Kawa Report Language)
(Kawa project)
An experimental dialect of and re-implementation of
BRL.
Distribution terms: GNU GPL
plus exception (no restrictions if code used unchanged).
- gnu.lists (Kawa project)
A collections package that includes lots of goodies, including a
compact representation for XML data.
Distribution terms: GNU GPL
plus exception (no restrictions if code used unchanged).
- gnu.mapping (Kawa project)
Contains Procedure
and various other classes
useful for implementing dynamically typed languages.
Distribution terms: GNU GPL
plus exception (no restrictions if code used unchanged).
- gnu.mail (Classpathx project)
The GNU javamail implementation classes. This package (and all subpackages)
is reserved for the Classpathx project.
- gnu.mapping (Kawa project)
Contains Procedure
and various other classes
useful for implementing dynamically typed languages.
Distribution terms: GNU GPL
plus exception (no restrictions if code used unchanged).
- gnu.math (Kawa project)
Complex numbers, rationals, bignums, units, other kinds of numbers.
Distribution terms: GNU GPL
plus exception (no restrictions if code used unchanged).
- gnu.prolog (Home page)
Prolog implementation written in Java.
Distribution terms: GNU Lesser GPL.
- gnu.regexp (Home page)
Regular Expressions For Java
Distribution terms: GNU Library GPL.
- gnu.rex (Home page)
Another regular Expressions for Java package.
Distribution terms: GNU Library GPL.
- gnu.socketserv (Paperclips project)
A thread pool based TCP server. The Socket Server allows you to build
high performance internet protocol servers (eg: HTTP, SMTP, etc...) very quickly.
- gnu.text (Kawa project)
Classes for reading, lexing and formatting text.
Utility classes for managing error messages from a parser.
A re-implementation of the Common Lisp pretty-printer.
Distribution terms: GNU GPL
plus exception (no restrictions if code used unchanged).
- gnu.xml (Kawa project)
Packages for reading and processing XML-like data. Depends on gnu.lists
.
Note that the other gnu.xml.*
listed below are unrelated.
Distribution terms: GNU GPL
plus exception (no restrictions if code used unchanged).
- gnu.xml.aelfred2
(Home page)
XML SAX and DOM parser
Distribution terms: GNU GPL(+ exception)
- gnu.xml.dom
(Home page)
DOM specification
Distribution terms: GNU GPL(+ exception)
- gnu.xml.pipeline
(Home page)
XML pipeline construction
Distribution terms: GNU GPL(+ exception)
- gnu.xml.util
(Home page)
XML utilties
Distribution terms: GNU GPL(+ exception)
The GNU project uses plain gnu
as the top package for its Java
code because it immediately identifies the package as GNU.
The purpose of a package system is to avoid accidental
clashes. There is no measurable benefit of using org.gnu
instead of gnu
.
Using the reverse domain name is an arbitrary convention that
uses a specific property of an organization to generate a unique
name. This property is no more intrinsic to the software than the
home telephone number of the principal engineer, longer to type,
and almost as ugly. What happens if the domain name of a company
changes, or ownership of a package is transferred to another
company? Then people have to change their package names.
Scattering globally unique names throughout a program is plainly
a bad idea. Unique names should at most be in a few header or
configuration files, where they can be easily modified, and where
they don't annoy people.
The gnu
namespace is completely identified with GNU.
It's a unique name without adding the org
part. Therefore,
why should we inconvieniance our developers and confuse our users by using
the longer names? Clearly we shouldn't. Which is why we have taken the
step of using just gnu
as our top-level package name.
Return to GNU's java home page.
Return to GNU's home page.
Please send FSF & GNU inquiries & questions to
gnu@gnu.org.
There are also other ways to
contact the FSF.
Please send comments on these web pages to
webmasters@www.gnu.org,
send other questions to
gnu@gnu.org.
Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111, USA
Verbatim copying and distribution of this entire article is
permitted in any medium, provided this notice is preserved.
Updated:
$Date: 2002/05/08 02:47:23 $ $Author: brett $