Core Library Support
Lightweight Hookable Events — a blockable, optionally shutdown-able, trap-able structure inside a GObject.
Library Initialization — Perform general initialization with limited argument parsing.
Helpful Macros — Various macros to eliminate tedious typing, beyond those provided by glib.
Base Input/Output Object — A base class with input and output triggers, but no actual read or write methods. Those are left for derived classes to support.
Binary Input/Output Stream Base — A byte stream. This has methods to read and write data, and it inherits read/write notification from GskStream.
gskstreamconnection — Connection between the input of one stream and the output of another.
Main Loop (Generic Event Management) — Convenient way to be notified when certain types of event occur.
Socket Address Lookup by Name — A way to lookup addresses from names. (Like a generic DNS.)
Useful GTypes — some types useful to servers
GskBuffer — a fast, flexible in-memory data buffer
Old-Fashioned errno Handling — A few tricks which operate on the same type as errno, an int.
Error Codes — An exhaustive composite list of error codes.
Trivial Main Functions. — These are trivial interfaces to the main-loop.
Glib Helper Routines — Miscellaneous helper routines that could conceivably be moved to glib someday.
Datagram I/O — base class for datagram I/O classes
Binary Packet — A binary data packet.
Listening for Connections — Base class for server-type objects.
Client Stream — Create a GskStream which is connecting to a remote address.
Socket Addresses. — The location of a socket endpoint, in some domain.
gsklog — convenient logging methods around the glib mechanism
Debugging Hints — How to debug your program
Runtime Toggled Debug Logging — methods to quickly turn logging on and off for portions of GSK.
gskutils
Object Hierarchy
Tutorials
Writing a Generic Server — How to write a server
Writing a Generic Client — How to write a client
Writing an HTTP Server — How to write a webserver
Writing a HTTP Client — How to write a web client
Standard Implementations
GskPacketQueueFd — A PacketQueue based on a file descriptor.
GskStreamFd — a file-descriptor based GskStream
GskStreamExternal — streams which connect to another process.
GskStreamListenerSocket — socket-based stream-listener.
gskbufferstream — Simple Buffering Stream
Standard Objects: the URL class
GskUrl — A Universal Resource Locator (or Identifier) object.
GskUrlTransfer — Transfer data with a location by URL.
GskUrlTransferHttp — An HTTP- or HTTPS-based transfer.
Standard Streams: the HTTP client and server
GskHttpHeader — Base class for HTTP headers.
GskHttpRequest — An HTTP header that is sent from client to server.
GskHttpResponse — An HTTP header that is sent from server to client.
GskHttpClient — The client end of an HTTP connection.
GskHttpServer — The server end of an HTTP connection.
Standard Streams: standard compression algorithms
GskZlibDeflator — a zlib compressor.
GskZlibInflator — a zlib decompressor
gskzlib
Standard Streams: utility streams
GskStreamQueue
memory-based streams — streams whose data is "memory", inside pointer-accessed data.
DNS library (client and server support)
gskdns
gskdnsrrcache — A cache of Resource Record data.
gskdnsclient — This is a DNS client.
gskdnslocalresolver — a DNS resolver which uses just a local resource-record cache.
gskdnsresolver — An interface that DNS resolvers provide.
gskdnsserver — base class for a DNS server.
SSL interface
GskStreamSsl
MIME handling
gskmimemultipartpiece
GskMimeMultipartDecoder — read Content-Type multipart/*.
RPC protocols
gskxmlrpc — XMLRPC definitions
GskXmlrpcStream — a stream of XMLRPC method calls and responses.
Main Loops
GskMainLoopDevPoll — /dev/poll based event loop.
GskMainLoopKqueue — a kqueue-based event loop.
GskMainLoopPoll — a poll(2)-based main-loop.
GskMainLoopPollBase — a base class for file-descriptor-only polling mechanisms.
GskMainLoopSelect — a select(2)-based event loop.
Odds and Ends
Base-64 — Base-64 Encoding and Decoding
gskhash — hash computing objects
gskmempool — pooling memory allocators.
gsknetworkinterface — Obtain information about your local network interfaces.
gskdate — Date parsing and printing code.
Macro Madness
gsklistmacros — macro-based list macros
gskrbtreemacros — Flexible Red-Black Trees implemented as macros
gskqsortmacro — inline qsort macro
Questionable ideas
gsktree — A robustly iterateable tree.
gskfork — Functions to call to clean up after forking.