Skip to content
DanielWaterworth edited this page Dec 29, 2011 · 1 revision

Overview

Siege's codebase can be roughly cut into 2 parts, the part that deals with storage and the part that deals with networking.

Storage

This is the nicer and more stable part. Data is stored in immutable trees, so read up on persistent data structures before trying to hack here. The individual nodes are dealt with using the RawDBOperation monad in Database.Siege.DBNode, the nodes form untyped trees in Database.Siege.DBTree and the untyped trees form the dynamically typed things in Database.Siege.DBMap and Database.Siege.DBSet, these dynamically typed things are dealt with using the DBOperation monad and it's this interface that the networking part of the code uses.

Network

This part is quite unstable at the moment. (More on this coming soon).

Clone this wiki locally