SPUNK - A portable C++ class library
*(--*(C++)++)*=3;
Contents
- What is spunk?
- Which platforms are supported?
- What can I do with spunk?
- Why has spunk such a funny name?
- Where do I get more information?
- Where do I get spunk?
Spunk is a C++ class library. Using spunk, you can easily write textmode
applications for many platforms at once.
But spunk is more than just a library that implements a textmode interface.
There are many useful classes, e.g. a class for serial communications that
has the same interface on every supported plattform.
Usually it is possible to have no platform dependent code in the application,
all system depencies are incapsulated and handled by spunk.
(This information is no longer up to date).
Currently there are ports for the following platforms/compilers:
- DOS
- Borland-C++ V3.1 (see note)
- Watcom-C++ (16-Bit) versions 10.0 and 10.5
- Watcom-C++ (32-Bit) using DOS4GW or PMODE/W as extender
- DJGPP (GNU-C++ V2.6.3)
(note).
- OS/2 version 2.0 or greater (32-Bit)
- Borland-C++ for OS/2 V1.0 (see note)
- Watcom-C++, versions 10.0 and 10.5
- Linux
- GNU-C++ compiler, versions 2.5.8 - 2.7.0
(note).
- FreeBSD
- GNU-C++ compiler, version 2.6.3
(note).
Besides classes and functions for creating textmode applications, there
are some more features:
-
Most spunk classes are persistent. Object instances of those classes
can be written to and read from disk.
-
This feature is used by spunk to store all visible program resources
in a separate resource file. This file contains menus, strings and
other data. This has many advantages:
-
The application has a smaller footprint in memory.
-
Changing resources does not imply recompiling the executable.
-
It is possible to deliver the same executable with different
resource files. This way it is very easy, to have one
application support mutliple features by simple disabling or
enabling those features in the menus.
-
Spunk supports multi language applications. The spunk resource manager
loads each resource in the current language. If this language specific
resource is not present, a generic (or english) resource is loaded
instead. This bevavior is transparent for the programmer. It is so
possible, to add a new language by simply adding new resources to the
resource file. In most cases, the executable must not be changed.
-
Creating visible resources is done by using the interactive resource
editor ResEd. There is no need to create menus from your program and
recompile every time your menus changed. Simply Use ResEd to create
your resources and load/show them at runtime using a simple function
call.
-
Spunk has builtin support for the serial ports on every platform.
-
Spunk has portable thread support for all platforms that support threads.
-
Spunk has TCP/IP network support for all platforms.
Long time ago, spunk was called "classlib". At that time,
there were only two people using spunk (me and a friend), even if there has
been a commercial application (running under OS/2) that has been developed
using spunk (or classlib at that time).
When I decided to give the public access to the former classlib, I started to
search for another, better name. At that time, I was reading "Pippi
Langstrumpf" (this book for children probably has another name outside of
germany) for my daughter. There is one story in this book, where Pippi invents
a new and dangerous disease called spunk - and this is how my
class library got it's name.
Unfortunately there is not very much documentation for spunk. There are the
beginnings of a text in english, look here if you
are interested.
One sample app is a multi window
hex editor, that is
available for free. The spunk resource editor ResEd may serve as
an additional expample for a spunk application.
Using the documentation and the sample programs, it shouldn't be very
difficult, to write programs with spunk. Anyway, if you have questions, feel
free to send mail to uz@musoftware.de.
Click here to download
the current version.
index.html; last change: 03-Sep-2000
uz@musoftware.de