Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

better-mojo/uuid

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

AltStyle によって変換されたページ (->オリジナル) /