Libraries
 previous   up   next 

Seed7 has libraries for many application areas. On this overview page the libraries are classified into several categories.

Numbers

Numeric types are supported with the following libraries:

integer.s7i Integer support library.
bigint.s7i Unlimited precision integer support library.
rational.s7i Rational number support library.
bigrat.s7i Big rational number support library.
float.s7i Floating point support library.
complex.s7i Complex support library.
math.s7i Mathematical functions and constants.

Strings

The characters in a string use the UTF-32 encoding. Strings are not '\0;' terminated. Therefore they can also contain binary data. Strings are supported with the following libraries:

string.s7i String library with support for concatenation, indexing, slicing, comparison, changing the case, searching and replacing.
scanstri.s7i String scanner functions to scan integer, character and string literals as well as names, and comments.
charsets.s7i Code pages for various character sets.
unicode.s7i Functions to convert to and from UTF-16BE, UTF-16LE, UTF-8 and UTF-7.
encoding.s7i Encoding and decoding functions for Base64 encoding, Quoted-printable encoding, uuencoding, percent-encoding, URL encoding, Ascii85 encoding and Base58 encoding.

Files

File support uses the interface types file and text together with various types to implement them. Libraries, which support standard I/O and enable I/O for various types, are also present. Files are supported with the following libraries:

file.s7i Interface type describing sequential files.
null_file.s7i Base implementation type for all files.
external_file.s7i File implementation type describing OS files.
stdio.s7i Standard input and output via files.
enable_io.s7i Templates to enable file I/O for a given type.
keybd.s7i Read from keyboard without buffering and echo.
editline.s7i Filter file for linewise editing with history.
line.s7i Filter file which reads the input linewise. Writing to a line file buffers lines and writes them to the base file with the next writeln or flush.
echo.s7i Filter file which generates an echo of the input.
utf8.s7i File implementation type for UTF-8 files.
utf16.s7i File implementation type for UTF-16 files.
strifile.s7i Implementation type for files stored in a string.
more.s7i File implementation type to show another file screenwise.
socket.s7i File implementation type for OS sockets.
dir.s7i Implementation type to read directorys as files.
text.s7i Interface type for line/column oriented files.
console.s7i Text implementation type for text console/window.
graph_file.s7i Implementation type to display graphic text.
window.s7i Filter file for text windows with random access.
pixmap_file.s7i Text implementation type to use a pixmap font.
bigfile.s7i bigInteger versions of seek, tell and length.

Operating system

Access to the operating system is supported with the following libraries:

environment.s7i Support for program arguments, name and path of the program and environment variables.
osfiles.s7i Functions to copy, move and remove files and functions to obtain and change file properties such as size, type, time and mode.
dir.s7i Implementation type to read directorys as files.
getf.s7i Read and write whole files into and from strings.
shell.s7i Support for shell commands

Network

There is support for sockets and TLS/SSL. Higher level protocols, such as HTTP, HTTPS, FTP and SMTP are also supported. Example programs using this features are the comanche webserver and the programs ftp7, ftpserv, tst_cli.sd7 and tst_srv.sd7. Network connections are supported with the following libraries:

sockbase.s7i Support for socket address and primitive socket.
socket.s7i File implementation type for sockets.
poll.s7i Support for pollData and the poll function.
listener.s7i Support for inet listener.
tls.s7i Support for Transport Layer Security (TLS) and Secure Sockets Layer (SSL).
gethttp.s7i Support to get data with the HTTP protocol.
gethttps.s7i Support to get data with the HTTPS protocol.
ftp.s7i Support for the FTP protocol.
smtp.s7i Support for the SMTP protocol.
cgi.s7i Support for the Common Gateway Interface.

Graphic

The graphic libraries allow drawing, image operations, windows manipulation as well as bitmap and vector fonts. Events to redraw a window and other annoyances are managed in the graphics libraries. Graphics is used by many example programs. The mandelbr fractal viewer, the wator predator-prey simulation and the testfont bitmap and vector font demo are some of them. Graphics is supported with the following libraries:

draw.s7i Portable graphic library.
color.s7i Functions for color processing.
graph_file.s7i Implementation type to display graphic text.
dialog.s7i Dialog support library.
graph.s7i Basic graphic library.
imagefile.s7i Support for various image file formats (BMP, GIF, ICO, JPEG, PNG, PPM and TIFF).
bmp.s7i Support for the BMP image file format.
gif.s7i Support for the GIF image file format.
ico.s7i Support for the ICO image file format.
jpeg.s7i Support for the JPEG image file format.
png.s7i Support for the PNG image file format.
ppm.s7i Support for the binary PPM image file format.
tiff.s7i Support for the TIFF image file format.
font.s7i Defines the font interface.
bitmapfont.s7i Font implementation type for bitmap fonts.
vectorfont.s7i Font implementation type for vector fonts.
pixmapfont.s7i Defines pixmapFontType and the font cache.
pixmap_file.s7i Text implementation type to use a pixmap font.

Database

Seed7 provides a database independent API. MySQL, MariaDB, SQLLite, PostgreSQL, Oracle, Firebird, Interbase, Db2, Informix and SQL Server databases can be accessed in a portable way. Databases are supported with the following libraries:

sql_base.s7i Base SQL access library.
db_prop.s7i Collection of database properties.

Compression

Several methods to compress and uncompress data are provided:

gzip.s7i Gzip uncompression function.
deflate.s7i Deflate compression algorithm.
inflate.s7i Inflate uncompression algorithm.
huffman.s7i Support for Huffman coding.
lzma.s7i Decompression with the Lempel-Ziv-Markov (LZMA) chain algorithm.
lzw.s7i Compression and decompression with the Lempel–Ziv–Welch (LZW) algorithm.
xz.s7i Decompression of XZ files.
zstd.s7i Decompression of Zstandard files.

File systems

Access to the contents of archive files, to operating system files and to remote files is provided with file systems. A file system can contain several files, which have a name and are situated in directories.

filesys.s7i Defines fileSys the interface type for file systems.
osfiles.s7i Defines osFileSys, a file system to access the local files of the operating system.
tar.s7i Defines tarArchive, a file system to access the individual files in a tar archive.
zip.s7i Defines zipArchive, a file system to access the individual files in a zip archive.
cpio.s7i Defines cpioArchive, a file system to access the individual files in a cpio archive.
ar.s7i Defines arArchive, a file system to access the individual files in an ar archive.
rpm.s7i Defines rpmArchive, a file system to access the individual files in a rpm archive.
ftp.s7i Defines ftpConnection, a file system to access files of a remote computer.

Miscellaneous

The following libraries do not fall in a category:

time.s7i Time and date library.
duration.s7i Time and date duration support library.
char.s7i Character library.
inifile.s7i Read key value pairs from an INI file.
propertyfile.s7i Read key value pairs from a property-file.
htmldom.s7i HTML dom parser.
html_ent.s7i HTML entity handling library
html.s7i Support functions for html
xmldom.s7i XML dom parser.
xml_ent.s7i XML entity handling library.
bytedata.s7i Functions to convert byte data to and from strings.
msgdigest.s7i Message digest and secure hash algorithms like MD4, MD5, SHA-1, SHA-224, SHA-256, SHA-384 and SHA-512.


 previous   up   next