Skip to content

Cleanup the hyperlight-host public API #765

Open
0 of 1 issue completed
Open

Description

@jprendes

Currently the following items are publicly exported from hyperlight-host, and I believe many of them were never intended to be public, we should fix that.
For items that are not intended to be public, but are needed by macros, we should mark them as #[doc(hidden)], and ideally be moved to a properly named module, something like _private

Crossed out are the items I believe don't need to be public.

List of all items

Structs

  • func::HostFunction
  • hypervisor::VirtualCPU
  • mem::memory_region::MemoryRegion
  • mem::memory_region::MemoryRegionFlags
  • mem::ptr::RawPtr
  • mem::shared_mem::ExclusiveSharedMemory
  • mem::shared_mem::GuestSharedMemory
  • mem::shared_mem::HostMapping
  • mem::shared_mem::HostSharedMemory
  • sandbox::config::SandboxConfiguration
  • sandbox::initialized_multi_use::MultiUseSandbox
  • sandbox::snapshot::Snapshot
  • sandbox::uninitialized::GuestBlob
  • sandbox::uninitialized::GuestEnvironment
  • sandbox::uninitialized::UninitializedSandbox

Enums

  • error::HyperlightError
  • func::ParameterValue
  • func::ReturnType
  • func::ReturnValue
  • hypervisor::HyperlightExit
  • mem::memory_region::MemoryRegionType
  • sandbox::uninitialized::GuestBinary

Traits

  • func::ParameterTuple
  • func::Registerable
  • func::ResultType
  • func::SupportedParameterType
  • func::SupportedReturnType
  • hypervisor::InterruptHandle
  • mem::shared_mem::AllValid
  • mem::shared_mem::SharedMemory
  • sandbox::Callable

Macros

  • and
  • debug
  • log_then_return
  • new_error
  • or

Functions

  • sandbox::is_hypervisor_present
  • sandbox::is_supported_platform

Type Aliases

  • Result
  • sandbox::ExtraAllowedSyscall

Activity

  1. jprendes commented on Aug 5, 2025

    @jprendes
    ContributorAuthor

    From the things I believe should be public, they live in the following modules:

    • func: 9 items, most supporting the HostFunction trait, the only other item is the Registerable trait.
      {HostFunction, ParameterValue, ReturnType, ReturnValue, ParameterTuple, Registerable, ResultType, SupportedParameterType, SupportedReturnType}
    • sandbox: 9 items, this is the most varied module.
      {config::SandboxConfiguration, initialized_multi_use::MultiUseSandbox, snapshot::Snapshot, uninitialized::GuestBlob, uninitialized::GuestEnvironment, uninitialized::UninitializedSandbox, uninitialized::GuestBinary, Callable, ExtraAllowedSyscall}
    • error: 1 item
      {HyperlightError}
    • :: (crate's root): 3 items, macros and Result
      {log_then_return, new_error, Result}

    and one outlier, hypervisor::InterruptHandle, which arguably should belong to a different module, probably sandbox.

  2. added
    lifecycle/confirmedBug is verified or proposal seems reasonable
    and removed on Aug 13, 2025
  3. added this to the v0.10.0 milestone on Aug 13, 2025
  4. jsturtevant commented on Aug 20, 2025

    @jsturtevant
    Contributor

    There was a Suggestion that we mark these as depreciated, we use these internally so might need to add allows as well

  5. modified the milestones: v0.10.0, v0.11.0, Tracking on Oct 1, 2025
  6. modified the milestones: Tracking, v0.14.0 on Feb 25, 2026
  7. simongdavies commented on Mar 11, 2026

    @simongdavies
    Member

    Linked to #1268

  8. modified the milestones: v0.14.0, v0.15.0 on Mar 11, 2026
  9. jsturtevant commented on Jun 17, 2026

    @jsturtevant
    Contributor

    This is dependent on the changes in #1268

  10. modified the milestones: v0.15.0, 1.0 on Jun 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

lifecycle/confirmedBug is verified or proposal seems reasonable

Type

No type

Projects

Relationships

None yet

Development

No branches or pull requests

Issue actions