Bee.BinLog An enum describing the result of a bee backend execution. All nodes built successfully User interrupted the build (e.g CTRL+C) An internal really bad error happened An action in the build graph failed Frontend needs to run again If the result of the build is RequestFrontendRerun, this will contain the reason why that was requested To parse a binlog, instantiate a BinLogReader, subscribe to the events you care about, and then invoke .ReadFromStream() repeatedly until you no longer expect interesting messages. (once you receive OnBuildFinished, you know nothing interesting will follow anymore) every nodeinfo message that arrives, we store it in a separate array, so we can very quickly acces it. These messages are small, as they do not contain the actual information like outputfile, outputdirectory etc, but instead it contains offsets where these strings can be found in the binlog. This class stores a binlog file in memory as it becomes available. We store it in chunks of 128k, allocating new chunks as required. A poor man's span, because we do not yet have the .netcore Span since we need to target .net47 for now. Get a linear-accesable span at a certain offset and length into the binlog. The fast path for this will return an existing chunk with an offset + length. There will be some strings or messages whose contents straddle two chunks. Since chunks should be relatively big (megabyte-ish), it's okay if the one message we try to read across the boundary is slow. A message for when a backend build starts Contains information about a node in the buildgraph The node index of this node. This correspons to the index in the dag.json. The annotation of this node. The display name of this node for showing in UI. The first output file (if any) of this node. The first output directory (if any) of this node. The profiler output file (if any) of this node. The first rsp file used by this node if any A message for when a node gets queued. Getting queued means that the bee backend has decided that this node has to somehow be produced. The node being queued. The node that required this node to be enqueued. A message for when a node starts actually being executed. The node being started. The index of the build thread that started executing this node. You can use this number to figure out which node was started before/after which other node. The only guarantee is that the number is increasing. A message for when the bee backend has determined that a node does not need to be executed because the version from the previous build is still good. The node that is up to date A message for when a node that was previously started is now finished The node that finished. The index of the build thread that started executing this node. The combined stdout + stderr of the execution. The commandline used to execute this node. The exit code of the execution. The duration of the execution. A message for when a backend build is finished The result of the build If the buildResult is BuildResult.RequestFrontendRerun, this will contain the reason why that was requested A message for when a backend wants us to execute an RPC message The node dag index The action name The action data