clipboard

    Cross-platform clipboard package for MoonBit with `js` and `native` backends.

    clipboard
    Download zip
    Author
    Version
    0.1.1
    License
    Apache-2.0
    Last updated
    4 months ago
    Downloads
    1K

    Dependencies

    #sennenki/clipboard

    Cross-platform clipboard package for MoonBit with js and native backends.

    #API

    • Async (all targets):
      • read_text_async() -> String raise ClipboardError
      • write_text_async(String) -> Unit raise ClipboardError
    • Sync (non-js only):
      • read_text() -> String raise ClipboardError
      • write_text(String) -> Unit raise ClipboardError

    Sync APIs are conditionally compiled with #cfg(not(target="js")), so they are not visible on JS builds.

    #Error Type

    ClipboardError has three variants:

    • NotAvailable
    • PermissionDenied
    • BackendFailure(String)

    #Backend Notes

    • JS backend: uses navigator.clipboard (browser-first).
    • Native backend: uses platform clipboard commands via C stub:
      • Windows: PowerShell Get-Clipboard / Set-Clipboard
      • macOS: pbpaste / pbcopy
      • Linux: wl-paste / wl-copy with xclip fallback

    #Native Test (MSVC)

    If your MoonBit native toolchain depends on MSVC dev environment variables, run one of:

    • test-native.cmd
    • pwsh -File .\test-native.ps1

    ClipboardError

    pub(all) suberror ClipboardError {
    NotAvailable
    PermissionDenied
    BackendFailure(String)
    } derive(Eq,
    Debug
    )

    read_text

    fn read_text() -> String raise ClipboardError

    read_text_async

    async fn read_text_async() -> String raise ClipboardError

    write_text

    fn write_text(text : String) -> Unit raise ClipboardError

    write_text_async

    async fn write_text_async(text : String) -> Unit raise ClipboardError

    Powered by MoonBit

    Site sourceReport issuePackagesBuild queueSkillsStatistics

    © 2026 mooncakes.io