Every mainstream language can produce a UUID with one line. Most have a built in for version 4, and support for version 7 is arriving fast. Here are the snippets you will actually use, grouped by language.
JavaScript in the browser
const id = crypto.randomUUID();
// "3b241101-e2bb-4255-8caf-4136c566a962" (v4)
crypto.randomUUID() is available in every current browser. It only works on secure origins, meaning https or localhost. For v7 you need a library:
import { v4, v7 } from "uuid";
v4(); // random
v7(); // time ordered
Node.js
import { randomUUID } from "node:crypto";
const id = randomUUID(); // v4, built in since Node 14.17
The same uuid npm package used in the browser works in Node and adds v1, v3, v5, v6 and v7.
Python
import uuid
uuid.uuid4() # UUID('9c5b94b1-35ad-49bb-b118-8e8fc24abf80')
str(uuid.uuid4()) # as a string
uuid.uuid5(uuid.NAMESPACE_URL, "https://mybittools.com") # deterministic
Python 3.14 added uuid.uuid7() to the standard library. On older versions install the uuid7 or uuid-utils package.
Go
import "github.com/google/uuid"
id := uuid.New() // v4
id7, err := uuid.NewV7() // v7
s := id.String()
The standard library has no UUID package. The Google package above is the de facto standard.
Java and Kotlin
import java.util.UUID;
UUID id = UUID.randomUUID(); // v4
String s = id.toString();
The JDK only ships v4 and v3. For v7 use a library such as uuid-creator or java-uuid-generator.
C# and .NET
Guid id = Guid.NewGuid(); // v4
Guid id7 = Guid.CreateVersion7(); // v7, .NET 9 and later
string s = id.ToString();
.NET calls them GUIDs but they are ordinary UUIDs. See UUID vs GUID for the one byte order quirk to watch for.
Rust
use uuid::Uuid;
let id = Uuid::new_v4();
let id7 = Uuid::now_v7();
Enable the v4 and v7 features of the uuid crate in Cargo.toml.
PostgreSQL
SELECT gen_random_uuid(); -- v4, built in since PostgreSQL 13
SELECT uuidv7(); -- v7, PostgreSQL 18 and later
CREATE TABLE orders (
id uuid PRIMARY KEY DEFAULT uuidv7(),
total numeric
);
MySQL and MariaDB
SELECT UUID(); -- v1 as a string
SELECT UUID_TO_BIN(UUID(), 1); -- 16 byte binary, timestamp first
SELECT BIN_TO_UUID(id, 1) FROM t; -- back to text
MySQL only generates v1. Generate v7 in your application and insert it as BINARY(16). MariaDB 10.7 added a native UUID column type.
SQLite
No built in generator. Create the UUID in your application. If you must do it in SQL, this produces a valid v4:
SELECT lower(hex(randomblob(4))) || '-' || lower(hex(randomblob(2))) || '-4' ||
substr(lower(hex(randomblob(2))), 2) || '-' ||
substr('89ab', abs(random()) % 4 + 1, 1) ||
substr(lower(hex(randomblob(2))), 2) || '-' || lower(hex(randomblob(6)));
Command line
uuidgen # macOS and most Linux, v4
uuidgen -t # v1 on Linux
cat /proc/sys/kernel/random/uuid # Linux, v4
python3 -c "import uuid; print(uuid.uuid4())"
On Windows PowerShell, [guid]::NewGuid() does the same.
Without any code
When you just need a handful of IDs for a test fixture or a config file, our online UUID generator makes up to fifty v1, v4 or v7 UUIDs at a time with one click copy.