Open Source release of C# Spyder control library
The software library used for the Spyder Client for the Windows Store is now available for use as a nuget package (for .Net developers), and the source has been made available up on GitHub. This library provides an implementation of the documented UDP control protocol, and additionally provides some of the ‘secret sauce’ used by richer control clients. From the GitHub readme:
- Full implementation of the published Spyder UDP control protocol
- System Config File parsing – provides full Spyder data object model to clients
- Drawing Data (live view) data stream deserialization (Supports 2.10.8 – 4.0.4)
- Spyder quick file transfer procotol (QFT) implementation. List, get, and set files
- Thumbnail Manager – provides background downloading, multi-resolution scaling, and memory lifetime management of system thumbnail images
Consuming the Nuget Package (.Net Developers)
The Nuget package is the easiest way for .Net developers to consume the Spyder client library, and can be used to target Windows Phone 8.1 or later, Windows RT / Store apps, or .Net 4.5 or later desktop applications. Get it from Visual Studio using the Nuget package manager (see screenshot below).
Nuget Package Info Page: http://www.nuget.org/packages/SpyderClientLibrary/
Getting the Source
GitHub Project Link: https://github.com/dsmithson/SpyderClientLibrary
If you want to build the library yourself, peruse the source, or even port it to another platform, head over to GitHub to get access to the source code (link above). This source uses the Apache 2.0 license, so you can do whatever you want with it. Please do use the issue tracker or submit pull requests if you have anything you’d like to add or fix, and have fun!
In future posts, we’ll explore some sample applications that use the library to do common things like control command keys, perform file backup/restore, and possibly even create a display simulator control that works from the Spyder server’s real-time data stream. I’ll also be working on some general documentation that I’ll post on the GitHub site, so keep an eye on the project’s GitHub page.