Component Matrix

This page reflects the current state of the components I am working at.

In the hope that these components can be used to create a number of software products, I want to share them with you. Probably you may have some ideas of a new software products that can help people in some way or another. Please contact me.

Most of the technologies are developed using .NET C#.

Mature Components

These components are used or will be used in commercial products I am planning. They are mature implementations and are tested in a number of scenarios and so can be used in products right now.

IMAP Client

An implementation of a RFC 3501 client library that is capable to send and receive most commands and response codes. Including SSL support.

RFC822 Mime Encoder / Decoder

A RFC822 compliant MIME message encoder and decoder capable to encode and decode base64 or quoted printable structured MIME messages.

Synchronization Engine

An implementation of a hierarchical synchronization engine that implements the Unison algorithm.

Adjustable computation system

A thread context based change notification and tracking system, that automatically detects dependencies on isolated code fragments and reruns them when inputs are changed, see live transactions. May be used to hide the MVC pattern at the property granularity.

JSon based IPC framework

A framework that uses direct instance to JSon serialization to send and receive structured data using process pipes. .NET and C++ clients and servers are implemented.

Components In Development

These are components I am currently working at. Some of them are implemented primarily to finish the products I am planning, but others for interest or fun. They are in an early stage and can not be used for production code right now.

Main Memory object database

A main memory object database with the following features:

  • ACID, multithreaded transactions
  • Implementation code is automatically generated from interfaces
  • Objects stored in the repository stay immutable (i.e. can be accessed without thread-synchronization)

“Live” View engine

Together with the main memory database, the view engine supports

  • live sorted and filtered collections
  • live associative generators
  • live associative views
  • live maintenance of back-references
  • dependency management among the views

Where “live” means that views are incrementally updated at the time they are queried.

PEG Parser Generator

A PEG parser generator that is implemented as an internal DSL in .NET, some details are here.

PDF parser

An experimental PDF parser that is capable to parse structured content.

Project “Hope”

A fresh view into the programming paradigm. Using Actors, message style concurrency and selective message reception, it should be now possible to do the things right, subprojects are:

Actor runtime

A C# based actor runtime, Erlang inspired, scalable to any number of cores, features selective message reception by using C# iterators.

Persistence framework

A persistency framework that uses .NET reflection. Capable to persist and wake up actors at any time.

Actor Server

A live server that is capable to run same typed actors of different code bases simulteneously. New versions can by uploaded at any time, version dependencies are tracked, actor’s dependencies are rewritten based on IL equality.

Actors are location independent, server can exchange code and actor instances. Agent systems are possible.

Proximity User Interface

A user interface solely built on top of actor proximity rules. Uses OpenGL and Cairo for rendering and a template system for specifying layout and animation.