Skip to content

Repository files navigation

uuid

Binding a mojo version of rust uuid.


UUID Mojo

🐝 binding uuid-rs for mojo 🔥

Mojo Version MIT License Pixi Badge
Contributors Welcome

简体中文 | English

Includes

Project Package Host Rank Description
uuid-ffi libuuid_ffi prefix.dev ⭐️⭐️⭐️ uuid-rs ffi package
uuid uuid prefix.dev ⭐️⭐️⭐️⭐️ uuid-mojo package

Usage

  • Import dependencies:
# First add 2 channel sources, including uuid-ffi package and uuid package
channels = [
    "https://conda.modular.com/max-nightly",
    "https://repo.prefix.dev/better-ffi", # contains uuid-ffi package
    "https://repo.prefix.dev/better-mojo", # contains uuid mojo package
    "conda-forge",
]

# Add 2 dependency packages, including uuid-ffi package and uuid package
[dependencies]
mojo = ">=1.0.0b2.dev2026052215,<2"

# FFI dependency
libuuid_ffi = ">=0.2.4,<0.3"
# Mojo package dependency
uuid = ">=0.2.5,<0.3"
  • ✅ Simple example:
import uuid


def test_uuid() raises:
    # implement style 1:
    var id = uuid.uuid_v4()  # auto free memory
    var id2 = uuid.uuid_v7()  # auto free memory

    # implement style 2:
    var id3 = uuid.gen_uuid_v4()
    var id4 = uuid.gen_uuid_v7()  # auto free memory

    print(id)
    print(id2)

    print(id3)
    print(id4)


def main() raises:
    test_uuid()
  • ✅ Complete example examples/try-uuid
    • Includes complete package dependency import methods
# install dependencies
pixi install

# run
pixi run mojo src/main.mojo

Development Environment

Install Dependencies

task setup

Build and Debug

  • ✅ Build and debug uuid-ffi package
# run examples
task ffi:r

# build uuid-ffi package
task ffi:b

# release uuid-ffi package
task ffi:rel
# run examples
task uuid:r

Release and Publish to Prefix.dev

# release
task release:rs
task release:mojo

# publish to prefix.dev
task publish:ffi
task publish:mojo
  • ✅ Compile and release Linux version, based on orbstack virtual machine
    • Note: each time you need to publish the ffi library for 3 OS versions to prefix.dev first, then publish the uuid package. (dependency order)
# list available virtual machines
orbctl list 

# connect to linux-aarch64 architecture virtual machine, execute compile + publish
orbctl run -m u22dev

# connect to linux-64 architecture virtual machine, execute compile + publish
orbctl run -m u22build

Reference

Mojo + SQLite

uuid-rs

Rust FFI

Releases

Packages

Used by

Contributors

Languages