Skip to content

[DOC] Document API function maturity and testing status #30

@tazarov

Description

@tazarov

Description

With the complete 305-function OrtApi struct now available (PR #28), we should document which functions are:

  • ✅ Battle-tested and recommended for production use
  • ⚠️ Structurally available but not yet tested with real workloads
  • 🚧 Implemented but experimental

Rationale

Users need clarity on which parts of the API they can rely on vs. which are still being validated. This prevents confusion and helps contributors know where to focus testing efforts.

Implementation

Add documentation (possibly to README.md or a new API_STATUS.md file) categorizing functions:

Tier 1: Production Ready (Battle-tested)

  • Environment management: InitializeEnvironment, DestroyEnvironment, GetVersionString
  • Error handling: GetErrorMessage, ReleaseStatus
  • Memory cleanup: ReleaseEnv (now working with complete struct)

Tier 2: Structurally Complete (Available but not extensively tested)

  • Session creation: CreateSession, CreateSessionOptions, ReleaseSession
  • Tensor operations: CreateTensorWithDataAsOrtValue, CreateMemoryInfo, CreateCpuMemoryInfo
  • Run operations: Run, CreateRunOptions
  • All 305 function pointers are structurally correct and accessible

Tier 3: Not Yet Implemented (Require Higher-level Go Wrappers)

  • Advanced features that require additional Go wrapper code beyond purego bindings
  • Complex tensor operations requiring memory management helpers
  • Custom operators and execution providers

Acceptance Criteria

  • Create API_STATUS.md or update README.md with function maturity tiers
  • Document which functions have integration tests
  • Add notes about which functions are used in examples
  • Include guidance on how to contribute tests to move functions from Tier 2 to Tier 1

Related Issues

Priority

Medium - This is important for transparency but doesn't block functionality

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions