My favorites | Sign in
Project Home Source
Project Information
Members
Links

PolKit is a collection of many reusable Obj-C classes and functions for Mac OS X Leopard and later providing features like advanced networking, file system utilities, HID, MIDI & serial port devices support, OpenSSL encryption, file upload & download for many protocols, etc...

The code is clean, ready to be used in your project, self-documented and has unit tests. Most classes are also independent from each other, so you can just pick what you need.

The entire project is available open-source under GPLv3 license. If you are interested in using PolKit in a non-open-source project and need a commercial license, please contact info@pol-online.net.


Some classes are simple Obj-C style wrappers around lower level system APIs, while some others are implemented from scratch and provide brand new features:

Device Classes

  • HIDController to use USB HID devices
  • AppleRemote to use the Apple Remote
  • MidiController to use Midi devices
  • OSCController to use OSC compatible devices over UDP
  • SerialPort to use any serial port device (e.g. connected to USB with a Serial to USB converter)
  • SC2004LCDModule to use the SC 2004 from http://www.siliconcraft.net/

Extensions

  • NSData+Encryption adds hashing (MD5, SHA1...) and encryption method to NSData (Blowfish, AES...)
  • NSData+GZip adds gzip compression / decompression methods to NSData
  • NSFileManager+LockedItems add a few methods to NSFileManager to deal with items locked in the Finder
  • NSURL+Parameters adds missing methods to NSURL to create a URL from various parts and deal with passwords

File System

  • DirectoryScanner to scan recursively the contents of directories, retrieve all metadata and compare them (very fast and powerful)
  • DirectoryWatcher to watch for changes in a given directory
  • DiskWatcher to watch for known disks to become available or unavailable

FileTransferController

A complete series of classes to handle operations (upload & download files, move, delete, create directories...) on file servers. It supports a wide range of protocols: HTTP, HTTPS, WebDAV, iDisk, Amazon S3, SFTP, FTP, FTPS, AFP, SMB...

Networking

  • MiniUDPSocket to send and receive network data over UDP
  • NetworkConfiguration to retrieve the current network configuration (location, WiFi network name, IP addresses...)
  • NetworkReachability to know when a given host (e.g. apple.com) becomes reachable or not

Scripts

  • ProcessInfoPlists.sh to replace placeholder words NAME, VERSION and SVN_REVISION by their actual values in the Info.plist and InfoPlist.strings of an Xcode target

Unit Testing

A simple class and set of macros to implement unit tests.

User Interface

  • SourceTextView to display and edit source code with syntax coloring (supports by default C style languages like JavaScript and also Lua)

Utilities

  • DataStream to implement custom NSInputStream subclasses or NSOutputStream subclasses compatible with other system APIs
  • DiskImageController to handle disk image operations (wraps hdiutil)
  • Keychain to handle basic keychain operations
  • LoginItems to add or remove items from the user login items
  • MD5 to compute and compare MD5 hashes
  • MiniXMLParser to do basic XML parsing with libxml2
  • StreamCoding to do basic serialization in binary streams
  • SVNClient to perform most SVN operations like checkout, info, commit... (wraps libsvnclient)
  • SystemInfo to retrieve various information about the system
  • Task to provide powerful execution of subtasks (wraps NSTask)
  • WorkerThread to provide simple worker threads with synchronous start / stop
Powered by Google Project Hosting