Skip to content

Documentation Coverage

This document maps every user-facing feature area to its documentation status, identifies gaps, and proposes priorities for follow-up work. Keep this file updated as new features are added or gaps are closed.

Legend

SymbolMeaning
✅Documented with examples
📄Documented, no examples
⚠️Partially documented
❌Not documented

1. Code Generation

1.1 Language Flags

FeatureDocsExamplesGapPriority
--build_c✅ CLI Reference✅——
--build_cpp✅ CLI Reference✅——
--build_ts✅ CLI Reference✅——
--build_py✅ CLI Reference✅——
--build_js✅ CLI Reference⚠️JS has no dedicated language guide beyond the CLI tableMedium
--build_csharp✅ CLI Reference✅——
--build_gql✅ CLI Reference❌No GraphQL usage guide or exampleMedium
--build_rust✅ CLI Reference✅ Rust SDK——

1.2 Output Path Options

FeatureDocsExamplesGapPriority
--c_path✅✅——
--cpp_path✅✅——
--ts_path✅✅——
--py_path✅✅——
--js_path✅⚠️No dedicated JS guideMedium
--gql_path✅❌No GraphQL guideMedium
--csharp_path✅✅——
--rust_path✅ CLI Reference✅ Rust SDK——
--catalog_path✅ CLI Reference📄sf_compile.json catalog mentioned; full schema not documentedLow

1.3 SDK & Advanced Flags

FeatureDocsExamplesGapPriority
--sdk✅ SDK Overview✅——
--sdk_embedded✅ C++ SDK✅——
--equality✅ CLI Reference❌No usage example showing equality operator outputLow
--force✅ CLI Reference❌Example showing hash-based caching would helpLow
--hash_path✅ CLI Reference❌No exampleLow
--generate_tests✅ CLI Reference❌No explanation of output formatMedium
--validate✅ CLI Reference❌No example showing validation errorsLow
--debug✅ CLI Reference❌No example of debug outputLow
--no_packed✅ CLI Reference, Message Definitions✅——
--csharp_namespace✅ CLI Reference✅——
--csharp_sdk✅ C# SDK✅——
--target_framework✅ CLI Reference❌No example showing framework targetingLow
--csharp_legacy_enum_names❌❌Migration flag not documentedMedium

2. Proto Field Types

TypeDocsExamplesGapPriority
int8✅ Message Definitions✅——
int16✅✅——
int32✅✅——
int64✅✅——
uint8✅✅——
uint16✅✅——
uint32✅✅——
uint64✅✅——
float✅✅——
double✅✅——
bool✅✅——
string (fixed)✅✅——
string (variable, max_size)✅✅——
repeated (fixed array)✅✅——
repeated (bounded array)✅✅——
repeated string✅✅——
repeated <message>✅✅——
enum✅✅——
Nested messages✅✅——
oneof (union)✅✅——
oneof with discriminator option✅✅——
Envelope messages (is_envelope)✅✅——
import statements✅✅——
flatten option⚠️ Message Definitions❌Documented for Python/GraphQL only; no cross-language exampleMedium

2.1 Message Options

OptionDocsExamplesGapPriority
msgid✅✅——
variable✅✅——
pkgid✅✅——
is_envelope✅✅——

3. Framing System

3.1 Header Types

HeaderDocsExamplesGapPriority
Basic (2 bytes)✅ Framing Details✅——
Tiny (1 byte)✅✅——
None (0 bytes)✅✅——

3.2 Payload Types

PayloadDocsExamplesGapPriority
Minimal✅✅——
Default✅✅——
Extended✅✅——
ExtendedMultiSystemStream✅⚠️Network profile shown but multi-node routing not exemplifiedMedium
Other payload variants (SysComp, Seq, etc.)❌❌Additional payload variants in payload_types.hpp are not documentedLow

3.3 Frame Profiles

ProfileDocsExamplesGapPriority
Standard✅✅——
Sensor✅✅——
IPC✅✅——
Bulk✅✅——
Network✅⚠️SysId/CompId/Seq fields usage not exemplified end-to-endMedium
Custom profile creation⚠️ Custom Features❌Mentions concept but no code example for creating a custom profileMedium

3.4 Checksum

FeatureDocsExamplesGapPriority
Fletcher-16 algorithm✅ Framing Details❌Algorithm explanation exists; no walkthroughLow
Checksum failure handling⚠️❌Negative test scenarios not described in docsMedium

4. SDK Classes

4.1 Encoders / Writers

ClassLanguageDocsExamplesGapPriority
FrameEncoderWithCrcC++⚠️❌Not mentioned by name in docsMedium
FrameEncoderMinimalC++⚠️❌Not mentioned by name in docsMedium
BufferWriter<Config>C++✅✅——
ProfileStandardWriter et al.C++✅✅——
ProfileStandardWriterPython✅✅——
ProfileStandardWriterTypeScript✅✅——
FrameEncoder<TProfile>C#⚠️ C# SDK❌Constructor usage not shownMedium

4.2 Parsers / Readers

ClassLanguageDocsExamplesGapPriority
BufferParserWithCrcC++❌❌Not documentedMedium
BufferParserMinimalC++❌❌Not documentedMedium
BufferReader<Config>C++✅✅——
AccumulatingReader<Config>C++✅✅——
ProfileStandardAccumulatingReaderC++✅✅——
ProfileStandardAccumulatingReaderPython✅✅——
ProfileStandardAccumulatingReaderTypeScript✅✅——
AccumulatingReaderRust✅ Rust SDK✅——
FrameDecoder / parsersC#⚠️❌Types exist but not shown by nameMedium

4.3 High-Level SDK

ClassLanguageDocsExamplesGapPriority
StructFrameSdkC++✅ C++ SDK✅——
StructFrameSdkPython✅ Python SDK✅——
StructFrameSdkTypeScript✅ TypeScript SDK✅——
StructFrameSdkC#✅ C# SDK✅——

4.4 Transports

TransportC++PythonTypeScriptC#GapPriority
Serial✅✅✅✅——
TCP✅✅✅✅——
UDP✅✅✅✅——
WebSocket✅⚠️✅✅Python WebSocket only mentioned; no exampleLow
Async (Python)✅ Python SDK✅N/AN/A——

5. Language-Specific Generated Code

FeatureCC++PythonTypeScriptJavaScriptC#GraphQLRustGapPriority
Message struct/class✅✅✅✅✅✅✅✅——
Serialize / encode✅✅✅✅✅✅N/A✅——
Deserialize / decode✅✅✅✅✅✅N/A✅——
Enum to string✅✅✅✅✅✅N/A❌Rust not documentedMedium
Equality operators (--equality)❌❌❌❌❌❌N/A❌No docs for any languageMedium
get_message_info function✅✅✅✅✅✅N/A❌Rust not documentedMedium

6. Getting Started

TopicDocsExamplesGapPriority
Installation✅ Installation✅——
Quick start✅ Quick Start✅——
Proto file basics✅ Message Definitions✅——
First code generation✅ Code Generation✅——

7. Reference

TopicDocsExamplesGapPriority
CLI reference✅ CLI Reference✅——
Build integration✅ Build Integration✅——
Development guide✅ Development✅——
Testing guide✅ Testing✅——
Wireshark dissector❌❌wireshark/ directory and Lua dissector not documented in docs siteLow

8. Summary of Gaps by Priority

High Priority

  1. JavaScript guide — JS generation is documented only via the CLI table; there is no language usage guide comparable to the Python/TypeScript pages.

  2. GraphQL guide — No usage guide or example for --build_gql / GraphQL schema output.

Medium Priority

  1. --csharp_legacy_enum_names — Migration flag not documented anywhere.

  2. --generate_tests output format — Flag is listed but the format of the generated test code is not explained.

  3. BufferParserWithCrc / BufferParserMinimal — These lower-level C++ parser classes are not described by name or exemplified.

  4. Network profile end-to-end example — The SysId/CompId/Seq fields in ExtendedMultiSystemStream payloads are not exemplified in a multi-node scenario.

  5. flatten option cross-language — Currently noted as Python/GraphQL only; should clarify which languages support it.

  6. Equality operators — --equality flag is listed but generated code examples are not shown for any language.

  7. Rust enum_to_string / get_message_info — Minor Rust coverage gaps; core encode/decode is documented.

Low Priority

  1. Custom payload variants — SysComp, Seq, and other non-profile payload types in payload_types.hpp are not documented.

  2. sf_compile.json full schema — The --catalog_path flag is now documented in the CLI reference but the full JSON schema is not described.

  3. Wireshark dissector — The wireshark/struct_frame.lua dissector is present but not linked from the docs site.

  4. Fletcher-16 walkthrough — Algorithm is named but no byte-level walkthrough is provided.

  5. --equality, --force, --hash_path, --validate, --debug, --target_framework — Each of these flags lacks a code example showing the effect.


Last updated: 2026-05-04. Update this document whenever a gap is closed or a new feature is added.