|Pike is distributed accompanied by a large set of modules, some of which are
described below. See the Pike manual for further
information on available Pike modules.
|Pike has a very competitive and efficient shared string handling built in,
that makes Pike the language of choice in several text processing intensive projects.
All Pike internals are wide string aware and handle unicode strings according
to the latest Unicode standard, e.g. when changing between upper and lower
cases. When interfacing with files and protocols Pike can decode and encode
strings with the Charset module. It can convert between almost 500 different
character sets, including iso-8859-1 to 15, iso-2022-jp, shiftjis, euc-jp,
euc-kr, euc-cn, utf-7, utf-8, windows 1250 to 1258, BIG5 and GB2312.
The Unicode module handles more uncommon Unicode operations like normalizing
Unicode strings with any of the methods NFC, NFD, NFKC and NFKD.|
|Pike also contains several different parsers, of which several are streaming.
These includes an SGML parser, a flexible HTML parser that can handle incorrect
HTML code, an XML parser that can validate against a DTD, a general purpose LR
paser, an RCS file parser, a C code parser and a Pike code parser.|
GUI Toolkit Interface
|PiGTK is a Pike interface for GTK+ 1.2, The GIMP Toolkit.
GTK is an Open Source Free Software GUI Toolkit,
primarily developed for use with the X Window System, but it
is also possible to use GTK to develop user interfaces for
Microsoft Windows. Pike also has support for GDK and GNOME.
GDK is The GIMP Drawing Kit, an abstraction layer that "isolates
GTK+ from the details of the windowing system". The GNOME support
lets you further enhance the integration of your Pike progams
into the windows manager. Click on one of the images below to see
PiGTK in use.
|The Image module lets you perform common image manipulation and
processing operations from Pike programs. The supported operations
include cutting and pasting, scaling, rotation, linear filtering of
most kinds, rendering of text, etc etc. All headlines on this site
are for instance created on-the-fly using that very technique.
|In addition to the above, anti-aliasing can be used when performing
any kind of drawing operation, producing smooth high-quality graphics.
|Using the Image module, you can automate jobs that would otherwise have
required tedious work in an interactive image processing program such
as Adobe Photoshop.
|The Image module handles many different formats; the table below shows which
formats are supported for decoding (reading an image file into a Pike
general-purpose image object) and encoding (turning an image object into
an image file of that format):
|The second version of the Calendar module contains many advanced features,
All in all, this module brings new possibilites when it comes to creating
calendar style applications, event databases and various kinds of time
and/or date calculations.
|Calendar TimeRange Objects; convenient objects that do
any calendral computation, from the normal gregorian year and
ISO second to Islamic calendar and Stardate.|
|Complete Timezone database - including regional daylight savings and
complete zone shift history. This architecture is what powers the
timezone option on this site for presenting
checkin times for you in your timezone in the cvs
browser, for instance.|
|Extensive Events database - when is the next Orthodox Assumption?
Is tomorrow a holiday in Yugoslavia or a flag-day in Finland?|
|Print functions and parse functions|
|Multi-language-support. Print dates in Roman Latin,
or Argentina's calendar with holidays in Spanish.|
|Modularized and easy to expand with new calendars,
event databases and languages.|
|The crypto toolkit is a set of objects implementing various
cryptographic algorithms, as well as objects used to glue the other
objects together. The toolkit includes the block ciphers AES (Rjindael), IDEA, DES
(including triple DES) and CAST, the arcfour stream cipher, the hash
functions MD2, MD4, MD5, DSA (DSS), HMAC and SHA, and the public key cryptography algorithm
RSA. It also includes some randomness sources.
|The toolkit can be used for most kinds of cryptographic applications,
including encrypted network connections, secure digital signatures and
encryption of files or other data.
3D Graphics Support
|Pike has an interface to OpenGL, the most widely used and supported 2D and
3D graphics application programming interface. In addition to Pikes GL support
Pike also supports GLU and GLUT. GLU is the OpenGL Utility Library, a set of
functions to create texture mipmaps from a base image, map coordinates between
screen and object space, and draw quadric surfaces and NURBS. GLUT is the
OpenGL Utility Toolkit, a window system independent toolkit for writing OpenGL
|The SQL interface makes it possible to use common SQL databases from
within your applications. Support for mSQL, MySQL and Postgres is included,
as well as ODBC, Oracle and Sybase. Non SQL support is available for
LDAP, gdbm and Mird.
|Pike comes with built-in support for the several common network protocols,
both for the Internet and for local networks.|