Skip to content
An opinionated cross platform c# service framework
C# Other
  1. C# 99.7%
  2. Other 0.3%
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.nuget
Zazzles.Tests
Zazzles
libs
.gitignore
README.md Update README.md Dec 22, 2016
Zazzles.sln
jenkins-build
jenkins-build.bat
license.txt

README.md

Zazzles

Concept

Zazzles is an opinionated cross platform server<->client framework designed for the FOG Client.

Development

Stories in progress

Windows Linux
Windows Linux

Building

Environment

To build Zazzles, any OS can be used, as long as it is capable of msbuild or xbuild targeted at .NET 4.5

Build Command

[msbuild/xbuild] Zazzles.sln

The binaries will be in bin

Modules

The framework's functionality derives from modules. Each module has 1 specific goal, and is isolated from every other module. Each module is executed in a sandbox-like environment, preventing bad code from crashing the service. Since each module is isolated, the framework's server can choose which modules to enable or disable.

Noteworthy API

Bus

The Bus is an IPC publisher/subscriber system. The currently implementation uses a local websocket server bound to the 127.0.0.1 loopback address. The Bus provides methods for both IPC and non-IPC events. It should be assumed that this websocket can be compromised at any time, thus treat all messages that derived from an IPC source, with the possible exception of root, with caution.

Log

Log.Debug calls will only output if Zazzles was build in Debug mode. This is because Log methods are built with preprocessor directives to prevent the possiblility of sensitive data being logged in Release builds.

Debugger

The Debugger will provides an interface for building tools capable of allowing a strings to call individual methods / modules with parameters. The tool will offer little benifit unless Zazzles is built in Debug mode, due to the preprocessor directives in Log.Debug

User

User.GetInactivityTime() will only work on Linux if xprintidle is installed. This also means inactivity checks cannot occur on any non xsession (such as ssh).

You can’t perform that action at this time.