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_cCLI Reference
--build_cppCLI Reference
--build_tsCLI Reference
--build_pyCLI Reference
--build_jsCLI Reference⚠️JS has no dedicated language guide beyond the CLI tableMedium
--build_csharpCLI Reference
--build_gqlCLI ReferenceNo GraphQL usage guide or exampleMedium
--build_rustCLI ReferenceRust SDK

1.2 Output Path Options

FeatureDocsExamplesGapPriority
--c_path
--cpp_path
--ts_path
--py_path
--js_path⚠️No dedicated JS guideMedium
--gql_pathNo GraphQL guideMedium
--csharp_path
--rust_pathCLI ReferenceRust SDK
--catalog_pathCLI Reference📄sf_compile.json catalog mentioned; full schema not documentedLow

1.3 SDK & Advanced Flags

FeatureDocsExamplesGapPriority
--sdkSDK Overview
--sdk_embeddedC++ SDK
--equalityCLI ReferenceNo usage example showing equality operator outputLow
--forceCLI ReferenceExample showing hash-based caching would helpLow
--hash_pathCLI ReferenceNo exampleLow
--generate_testsCLI ReferenceNo explanation of output formatMedium
--validateCLI ReferenceNo example showing validation errorsLow
--debugCLI ReferenceNo example of debug outputLow
--csharp_namespaceCLI Reference
--csharp_sdkC# SDK
--target_frameworkCLI ReferenceNo example showing framework targetingLow
--csharp_legacy_enum_namesMigration flag not documentedMedium

2. Proto Field Types

TypeDocsExamplesGapPriority
int8Message 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 DefinitionsDocumented 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 FeaturesMentions concept but no code example for creating a custom profileMedium

3.4 Checksum

FeatureDocsExamplesGapPriority
Fletcher-16 algorithmFraming DetailsAlgorithm 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# SDKConstructor usage not shownMedium

4.2 Parsers / Readers

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

4.3 High-Level SDK

ClassLanguageDocsExamplesGapPriority
StructFrameSdkC++C++ SDK
StructFrameSdkPythonPython SDK
StructFrameSdkTypeScriptTypeScript SDK
StructFrameSdkC#C# SDK

4.4 Transports

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

5. Language-Specific Generated Code

FeatureCC++PythonTypeScriptJavaScriptC#GraphQLRustGapPriority
Message struct/class
Serialize / encodeN/A
Deserialize / decodeN/A
Enum to stringN/ARust not documentedMedium
Equality operators (--equality)N/ANo docs for any languageMedium
get_message_info functionN/ARust not documentedMedium

6. Getting Started

TopicDocsExamplesGapPriority
InstallationInstallation
Quick startQuick Start
Proto file basicsMessage Definitions
First code generationCode Generation

7. Reference

TopicDocsExamplesGapPriority
CLI referenceCLI Reference
Build integrationBuild Integration
Development guideDevelopment
Testing guideTesting
Wireshark dissectorwireshark/ 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 variantsSysComp, 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.