Software Table of Contents How To Get GNU Software Descriptions of GNU Software Packages Java programs Descriptions of unfinished GNU Software Projects Descriptions of some Other GPL-Covered Free Software Packages Descriptions of unfinished non-GNU software packages Descriptions of some Other Non-GPL-Covered Free Software Packages How To Get GNU Software GNU software is available by several different methods: Buy copies on CD-ROM from the FSF. This helps provide the funds for the GNU Project. Our three CD-ROM sets include source code for all GNU software, GNU compiler tools executable on ten common platforms, and a larger selection executable on intel-microsoft platforms. Get it by FTP. By FTP we provide source code for all GNU software, free of charge. (Please also make a donation to the FSF, if you can, to help us write more free software.) Get a copy from a friend. (Please also make a donation to the FSF, if you can, to help us maintain free software.) Descriptions of GNU Software Packages Here is a list of some GNU programs and FSF software projects, with some information about them. GNU programs are programs released under the auspices of the GNU Project. We would like to list all GNU programs here, but that will take more work. If you would like to write descriptions for other GNU programs, here's what to do! For descriptions of GNU Software not listed here, please look at the articles: ``GNU Software'' and ``Forthcoming GNUs'' in the current GNU's Bulletin. Information on the year 2000 and GNU software is also available. The index (28k characters) shows which GNU package each GNU program or library is in. You can get this and other GNU software these ways. Some of these links are at other web sites not maintained by the FSF. The FSF is not responsible for the content of these other web sites. a2ps is an Any to Postscript filter. adns is a resolver library for C and C++ programs. Autoconf produces shell scripts which automatically configure source code packages. Automake is a tool for generating Makefile.in files for use with Autoconf. GNU Backgammon plays and analyses backgammon games and matches. It is currently a work-in-progress. Bash, the Bourne Again SHell, is compatible with the Unix `sh' and offers many extensions found in `csh' and `ksh'. bc is an interactive algebraic language with arbitrary precision numbers. Binutils includes these programs: `ar', `c++filt', `demangle', `gas', `gprof', `ld', `nlmconv', `nm', `objcopy', `objdump', `ranlib', `size', `strings', and `strip'. Bison is an upwardly compatible replacement for the parser generator `yacc'. Calc is an extensible, advanced desk calculator and mathematical tool that runs as part of GNU Emacs. cfengine is used to maintain site-wide configuration of a heterogeneous Unix network using a simple high level language. Cgicc is a C++ class library for writing CGI applications. Checker is a package that works with GCC to detect memory use errors in a program. GNU Chess is a Chess-playing program. C Library for use with GNU/Hurd and GNU/Linux. cpio copies file archives to and from disk, or to another part of the local machine. CVS is a version control system (like RCS or SCCS) which allows you to keep old versions of files (usually source code), keep a log of who, when, and why changes occurred, etc. DejaGnu is a framework to test programs with a single front end for all tests. Diction, and Style, check English text for common bad usage and analyze readability. (This package is still in development.) Diffutils includes GNU `diff', which compares files showing line-by-line changes in several flexible formats. DJGPP includes GCC, G++, and GNU utilities for DOS. dld is a dynamic linker which allows the dynamic loading of object files into a running binary. doschk is a utility to ensure that source file names are distinguishable on MS-DOS, FreeDOS and other DOS systems with 8+3 character filenames, and on System V platforms with 14-character filenames. Dr. Geo is interactive software that allows the construction of geometric figures. ed is the standard text editor. It is line-oriented and can be used interactively or in scripts. EDMA is an open and modular development environment similar to the Component Object Model or the System Object Model. Electric is a sophisticated electrical CAD system that can handle many forms of circuit design. Elib is a small library of Emacs Lisp functions, including routines for using AVL trees and doubly-linked lists. Emacs is an extensible, customizable real-time display editor and computing environment. It offers true Lisp--smoothly integrated into the editor--for writing extensions and provides an interface to the X Window System. enscript is an upwardly-compatible replacement for the Adobe `enscript' program. It formats ASCII files (outputting in Postscript) and stores generated output to a file or sends it directly to the printer. The Fileutils are: `chgrp', `chmod', `chown', `cp', `dd', `df', `dir', `dircolors', `du', `install', `ln', `ls', `mkdir', `mkfifo', `mknod', `mv', `rm', `rmdir', `sync', `touch', and `vdir'. Findutils includes `find', which is frequently used both interactively and in shell scripts to find files which match certain criteria and perform arbitrary operations on them. Also included are `locate', which scans a database for file names that match a pattern, and `xargs', which applies a command to a list of files. GNU Finger is a utility program designed to allow users of Unix hosts on the Internet network to get information about each other. The Fontutils convert between font formats, create fonts for use with Ghostscript or TeX, etc. GNU Fortran is a free Fortran 77 compiler. Gawk is upwardly compatible with the latest POSIX specification of `awk'. It also provides several useful extensions not found in other `awk' implementations. gcal is a program for printing calendars. It displays different styled calendar sheets, eternal holiday lists, and fixed date warning lists. GCC is a free compiler for C, C++ and Objective C. gdb is a source-level debugger for C, C++ and Fortran. gdbm is a replacement for the traditional 'dbm' and 'ndbm' libraries. The GNU gettext tool set has everything maintainers need to internationalize a package's user messages. gforth is a fast, portable implementation of the ANS Forth language. Ghostscript is an interpreter for the Postscript and PDF graphics languages. Ghostview provides a graphical front end to Ghostscript allowing a Postscript or PDF file to be previewed using an X Window interface. The GIMP, the GNU Image Manipulation Program, is like Photoshop only better. GIT, the GNU Interactive Tools package, includes: an extensible file system browser, an ASCII/hex file viewer, a process viewer/killer, and other related utilities and shell scripts. gleem, gleem: OpenGL Extremely Easy-to-use Manipulators is a small, self-contained C++ library of 3D Widgets that support direct user interaction with a 3D scene. gmp, GNU mp, is a library for arithmetic on arbitrary precision integers, rational numbers, and floating-point numbers. GNAT is a complete Ada95 compilation system, maintained and distributed under the GNU General Public License by Ada Core Technologies. GNATS, GNats: A Tracking System, is a bug-tracking system. It is based upon the paradigm of a central site or organization which receives problem reports and negotiates their resolution by electronic mail. GNOME is the GNU desktop, intended to provide graphical user interfaces for all the tasks for which they make sense. GNOME has everything from spreadsheets to mail clients. GnuGo plays the game of Go. Gnumeric is a spreadsheet intended to replace commercial spreadsheets. GNUscape Navigator is a Web browser that runs under GNU Emacs. GNU Smalltalk is an implementation of the Smalltalk object oriented language which is based on the Smalltalk-80 language (tm ParcPlace Systems) as described in the book "Smalltalk-80: the Language and its Implementation" by Adele Goldberg and David Robson (often referred to as "the Blue Book"). GNUstep and the GNUstep Base Library provide a graphical, object-oriented programming environment. gpc is the GNU Pascal compiler. Goose is a C++ library for statistical calculations. gPhoto is a graphical application for retrieving, organizing, and publishing images in various graphics formats, from a range of supported digital cameras. Greg is a framework for testing other programs and libraries. The grep package includes GNU `grep', `egrep', and `fgrep', which find lines that match entered patterns. GRG is the GNU Report Generator. Groff is a document formatting system based on a device-independent version of `troff'. GNU GRUB is the GNU GRand Unified Bootloader. GTKeyboard allows the user to press keys on an onscreen keyboard that will either be entered into a simple text editor, or inte the application of choice. Guile is the GNU extensibility library. Gush is the GNU User's Shell. gzip is GNU's program for compressing and decompressing files. The GNU hello program produces a familiar, friendly greeting. It allows non-programmers to use a classic computer science tool which would otherwise be unavailable to them. GNU hp2xx reads HP-GL files, decomposes all drawing commands into elementary vectors, and converts them into a variety of vector and raster output formats. Httptunnel creates a bidirectional virtual data path tunnelled in HTTP requests. Hyperbole, written by Bob Weiner in Emacs Lisp, is an open, efficient, programmable information management, autonumbered outliner, and hypertext system, intended for everyday work on any platform Emacs runs on. ID Utils is a package of simple, fast, high-capacity, language-independent tools that index program identifiers, literal numbers, or words of human-readable text. GNU indent formats C source code into GNU, BSD, K&R, or your own special indentation style. Inetutils is a distribution of common networking utilities and servers. Ispell is an interactive spell checker that suggests `near misses' to replace unrecognized words. JACAL is a symbolic mathematics system. java2html is a small program that, given a java source code, produces an html source with syntax highlighting. less is a display paginator similar to `more' and `pg', but with various features (such as the ability to scroll backwards) that most pagers lack. libtool makes it easy to develop and maintain shared libraries. GNU m4 is an implementation of the traditional Unix macro processor. make automatically determines which pieces of a large program need to be recompiled, and issues commands to recompile them. Maverik is a virtual reality micro kernel. maxima is a Common Lisp implementation of MIT's Macsyma system for computer based algebra. The Midnight Commander is a user friendly and colorful Unix file manager and shell, useful to novice and guru alike. Meta-HTML is a programming language specifically designed for working within the World Wide Web environment. mtools is a set of public domain programs to allow Unix systems to read, write, and manipulate files on a DOS file system (typically a diskette). Nana is a package for programming and testing debugging assertions. Ncurses is a package for displaying and updating text on text-only terminals. NetHack is a Rogue-like adventure game supporting character and X displays. OBST is a persistent object management system with bindings to C++. OBST supports incremental loading of methods. Octave does arithmetic for real and complex scalars and matrices, solves sets of nonlinear algebraic equations, integrates systems of ordinary differential and differential-algebraic equations, and integrates functions over finite and infinite intervals. Oleo is a spreadsheet program. It supports the X Window System and character-based terminals, and can output Embedded Postscript renditions of spreadsheets. Panorama is a framework for 3D graphics production. patch is our version of Larry Wall's program to take `diff''s output and apply those differences to an original file to generate the modified version. The Perl programming language combines the features and capabilities of C, `sed', `awk', and `sh'. The Plotutils package contains `libplot', a C/C++ library that can export 2-D vector graphics, in many file formats, and do vector graphics animations. It also contains several command-line programs for plotting scientific data. GNU Prolog is a native compiler for ISO Prolog with constraint solving over finite domains. PSPP is the GNU replacement for SPSS. Pth is the GNU Portable Threads library ptx is the GNU version of the traditional permuted index generator. queue is a load-balancing/distributed batch processing and local rsh replacement system R is a system for statistical computation and graphics. It is a dialect of the S programming language from Bell Labs. RAT is a Recipe Analysis Tool which calculates the total nutrients in a given recipe. RCS, the Revision Control System, is used for version control and management of software projects. GNU recode converts files between character sets and usages. When exact transliterations are not possible, it may delete the offending characters or fall back on approximations. GNU Robots is a game/diversion where you construct a program for a little robot, then watch him explore a world. rx is a replacement for the GNU regex library. screen is a terminal multiplexer that runs several separate `screens' (ttys) on a single character-based terminal. sed is a stream-oriented version of `ed'. shtool is a portable shell tool for use inside source trees of free software packages. Sharutils includes `shar',which makes so-called shell archives out of many files, preparing them for transmission by electronic mail services; `unshar' helps unpack these shell archives after reception. The Shellutils are: `basename', `chroot', `date', `dirname', `echo', `env', `expr', `factor', `false', `groups', `hostname', `id', `logname', `nice', `nohup', `pathchk', `printenv', `printf', `pwd', `seq', `sleep', `stty', `su', `tee', `test', `true', `tty', `uname', `uptime', `users', `who', `whoami', and `yes'. smail is a mail transport system, designed as a compatible drop-in replacement for `sendmail'. It uses a much simpler configuration format than `sendmail' and is designed to be setup with minimal effort. GNU SQL is a free, portable multiuser relational database management system. stow manages the installation of software packages, keeping them separate while making them appear to be installed in the same place. GNU tar includes multi-volume support, the ability to archive sparse files, compression/decompression, remote archives, and special features that allow `tar' to be used for incremental and full backups. The Termutils package contains programs for controlling terminals. `tput' is a portable way for shell scripts to use special terminal capabilities. `tabs' is a program to set hardware terminal tab settings. texinfo is a set of utilities which generate printed manuals, plain ASCII text, and online hypertext documentation (called `Info'), and can read online Info documents. textutils is a set of utilities for manipulating text. time reports (usually from a shell) the user, system, and real time used by a process. On some systems it also reports memory usage, page faults, etc. GNU Trueprint is a program for printing source files and other text files to a postscript printer. userv is a system facility to allow one program to invoke another when only limited trust exists between them. wdiff is a front-end to GNU `diff'. It compares two files, finding the words deleted or added to the first to make the second. wget non-interactively retrieves files from the WWW using HTTP and FTP. It is suitable for use in shell scripts. Window Maker is a window manager for X. XaoS is a real-time fractal zoomer. xhippo is a generic playlist manager program for a variety of sound players. xinfo is an X-windows program for reading Info files. Xlogmaster is an X11 program that does comfortable and fast monitoring of all logfiles and every device that allows its status being read by cat (like the /proc devices). Xmcd is CD Player utility package including xmcd, a CD Player for the X window system using the Motif graphical user interface and cda, a command-line driven, text mode CD Player which also features a curses-based, screen-oriented mode. xshogi is a graphical Shogi (Japanese Chess) board for the X Window System. (This list needs more work. It needs all the GNU Programs listed. Here's what to do!) Java programs Various Java programs have been contributed to the GNU Project. You will find a list of these programs by visiting our list of Java packages and applications or our Java page. Descriptions of unfinished GNU Software projects These are just a fraction of the software projects that the GNU Project is working on. We hope to list more projects here in the future. Classpath is a set of essential libraries for supporting the Java language. Free Film Project is a complete set of utilities which, when used together, will act as a complete virtual film studio. GPKCS-11 is an implementation of PKCS#11: Cryptographic Token Interface Standard. GNU Cobol is an effort to create a compiler for the Cobol language. GnuPG is a complete implementation of the OpenPGP Internet standard. GYVE stands for ``the GNU Yellow Vector Editor''. It is a vector-based drawing program in the spirit of Adobe Illustrator and Corel Draw. Harmony is aimed at creating an API-compatible replacement for the Qt toolkit. The HURD is the kernel of the GNU system. Zebra is an implementation of many popular routing protocols. Descriptions of Other GPL-Covered Free Software These are some additional GPL or LGPL-covered free programs which we think it is useful to mention. Mats Weber's Ada Components for math, data structures, Ada programming tools and OS Interface. Aegis is a transaction-based software configuration management system. Alliance is a complete set of CAD tools for the specification, design and validation of digital VLSI circuits. AOLserver is a fast, multithreaded web server. AoMasq" is a software package consisting of a client and a server. The server-software runs in a U*NIX environment, waiting for requests from Windows 98 clients, wich want to have a internet connection served by IP Masquerading. Autochar is used to automate the characterization of digital circuits. Autogen is a tool for automatically generating arbitrary text files that contain repetitive text with varying substitutions. bookland.py is a Python program that generates ISBN bar code symbols (Bookland EAN-13 + 5-digit add-on) in EPS format. Includes UPC-A and EAN-13 classes, so possibly useful in broader context. Catdoc is a program which reads Microsoft word files and outputs ASCII text of the contents of the file. cdcd is a command-line program to play CDs. Citadel CLISP is an implementation of the ANSI Common Lisp with compiler, interpreter, debugger and more. COAS is a general-purpose framework for configuration editing. Compare is a program that compares two pieces of text for similarities. Cook automatically determines which pieces of a large program need to be recompiled, and issues commands to recompile them. Cyber Radio 1 is a client/server application used for live Internet audio broadcasts. DGPS allows you to get GPS correction signals over IP. Dumb is a free engine for running Doom worlds, not yet complete. The E Equational Theorem Prover is an automated theorem prover for clausal logic, based on superposition and rewriting. eFax is a program for sending and receiving class 1 and class 2 faxes. Eli is a compiler construction kit. Esh is a Unix shell with a syntax similar to Lisp/Scheme. Exim is a powerful mail transport agent. FarsiTeX is a TeX typesetting program for Persian. fastDNAml is a program for estimating maximum likelihood phylogenetic trees from nucleotide sequences. The Filters project is writing conversion routines from proprietary formats to XML-based file formats. fftw is a C subroutine library for computing the Discrete Fourier Transform (DFT) in one or more dimensions. FreeS/WAN is an implementation of IPSEC and IKE for GNU/Linux. Gale is an instant messaging and presence software. GnuSkies is an attempt to create a free version of the xephem program. gpc is the GNU Pascal compiler; fpc is another GPL'd Pascal compiler. GRACE is a WYSIWYG 2D plotting tool for X Window System and Motif (LessTif). Hindent is a program for reformatting HTML code. ht://Dig is a complete world wide web indexing and searching system. Jabber is developing a free alternative to AIM and ICQ. jMax is an environment for programming real-time interactive multimedia applications. TOCHNOG is a mathematical modeling program for heat diffusion, deformation, friction, and ground water flow. lclint is a C code checker. LessTif is a free implementation of OSF/Motif. libungif is a program to operate on gif files using uncompressed gifs when writing. See Why there are no GIF files on GNU web pages. Light Speed! simulates a geometric lattice, or arbitrary object moving at high velocity through space. Linux Lab Project is a project intented to help people with development of data collection and process control software for GNU/Linux. Lout is a document formatting system similar in style to LaTeX. Lynx, a text-only Web browser that is GPLed. Mercury is a modern logic/functional programming language. The Mercury implementation includes a compiler, a debugger, a profiler, and numerous library packages and other tools. Mesa is a free implementation of OpenGL. MidiShare is an LGPL'ed musical operating system. Minivend is a free full-featured web based electronic catalog/ordering system. MIRO DC1+ driver for the Linux kernel. MHonArc is a Perl program for converting e-mail messages as specified in RFC 822 and MIME to HTML. Ulm's Modula-2 system provides a compiler for Modula-2. MRTG is a tool to monitor the traffic load of network-links. omniORB is a GPLed CORBA orb. The Pizza Delivery System is a GTK+ Application for automating the order processing of both delivery and take away orders for your average Pizza Bar, Cafe, Bistro, etc. Oberon V4 is an attempt to create an Oberon V4 for systems running GNU/Linux. Openbios is working on a free bios. Pagecast submits lists of URL's to various search engines. Perl Object Development System is an Integrated Development Environment (IDE) for developing web applications in Perl. PIKT is a program for administering heterogeneous networked workstations. Playmidi is a MIDI player for FM, GUS and external MIDI devices. Pliant is a programming language framework. PRCS is the Project Revision Control System. RHIDE is an integrated development environment for DJGPP. Rosegarden is an integrated MIDI sequencer and musical notation editor. Roxen, an http server. RRD TOOL is a system to store and display time-series data (i.e. network bandwidth, machine-room temperature, server load average). Rsync is a file transfer program for Unix systems which provides a fast method for bringing remote files into sync. The RTSP Reference Kit could evolve into a useful audio-playing program. Samba is a file-sharing implementation under the GPL. SANE is an application programming interface (API) that provides standardized access to any raster image scanner hardware. Sather is an object oriented language designed to be simple, efficient, safe, flexible and non-proprietary. Scilab is a scientific software package for numerical computations. You should first look at octave which is part of the GNU system. SDCC is a retargettable, optimizing ANSI - C compiler. SmallEiffel is intended to be a complete Eiffel compiler. SWISH++ is a Unix-based file indexing and search engine. Tvset is a program for GNU/Linux that uses the video4linux API to display TV images in X. UltraSonix is a "screen reader" which supports both braille and speech output under the X Window System. VNC is a remote display system which allows you to view and interact with a remote 'desktop' using a very low-level graphics protocol which is platform-independent. VRweb is a browser for 3D worlds and scenes modeled in VRML. CGI::WeT is a tool which allows the webmaster to focus on content creation and allow a set of Perl scripts working in conjunction with the web server to create the page layout. Willows TWIN is a cross-plattform API. Wind Tunnel Data Analyzer WML is a HTML generation toolkit xBase is a library for manipulating xBase files. XFS is a journaling filesystem for the Linux kernel. ytalk is a multi-user talk program, compatible with the older talk clients and daemons. Description of unfinished non-GNU Software projects These are some software projects that are in the development stage and are not yet GNU software. Free Expression is a project aimed at developing a copylefted suite of streaming media tools. Flight Gear Flight simulator is a free flight sim development project. Gale is instant messaging and presence software, similar to Internet Relay Chat and Mirabilis' ICQ. Descriptions of Other Non-GPL-Covered Free Software These are some additional Non-GPL-covered free programs which we think it is useful to mention. ACE (Adaptive Communication Environment) is an open-source object-oriented framework that implements many core design patterns for concurrent communication software. TAO (The ACE ORB) is a high-performance, real-time CORBA ORB. dbedit, a toolkit for writing database-driven web applications. Festival is a general multi-lingual speech synthesis system. Frontdesk, a web-based mail system for customer support and bug tracking. ftnchek is a static debugger for Fortran 77 programs. It is designed to detect certain errors in a Fortran program that a compiler usually does not. GN, a Gopher/http server. Gnuplot is a command-line driven interactive function plotting utility. Harbour is a cross-platform compiler for the xBase language. Hugs is a small, portable Haskell interpreter. HylaFAX. Mozart implements Oz, a concurrent object-oriented language with dataflow synchronization. Generic NQS. Ptolemy is a system-level design framework that allows mixing models of computation. w3m is a text-based WWW browser, that can render tables and frames. Wumpus is an exact clone of the classical Wumpus game. WN, an http server. wxWindows is a cross-platform GUI development framework. X window system. Return to GNU's home page. FSF & GNU inquiries & questions to gnu@gnu.org. Other ways to contact the FSF. Comments on these web pages to webmasters@www.gnu.org. Copyright (C) 1996, 1997, 1998, 1999. 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: 14 Aug 1999 jonas