Internals
DanielWaterworth edited this page Dec 29, 2011
·
1 revision
Siege's codebase can be roughly cut into 2 parts, the part that deals with storage and the part that deals with networking.
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.
This part is quite unstable at the moment. (More on this coming soon).