Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1 +1 @@
* @paolodamico @andy-t-wang @SeanROlszewski @Guardiola31337 @Takaros999 @Gr1dlock @0x1
* @paolodamico @andy-t-wang @SeanROlszewski @Guardiola31337 @Takaros999 @Gr1dlock @0x1
88 changes: 2 additions & 86 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 0 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@ resolver = "2"

members = [
"rust/core",
"rust/uniffi-bindings",
"rust/uniffi-bindgen-bin",
"rust/wasm",
]

[workspace.package]
Expand Down
19 changes: 10 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,22 @@
# IDKit - World ID SDK (Rust Core)
# IDKit - World ID SDK for Relying Parties

IDKit is the toolkit for identity online. With IDKit you can easily interact with the [World ID Protocol](https://world.org/world-id).

## Packages

### Core
- **`rust/core`**: Core Rust library with shared types, credential handling, session management, and cryptography

### Language Bindings
- **`js/packages/core`**: ✅ JavaScript/TypeScript with WASM for browser & Node.js ([docs](./js/packages/core/README.md))
- **`kotlin/`**: Kotlin bindings via UniFFI for Android/JVM
- **`swift/`**: Swift bindings via UniFFI for iOS/macOS
```
world-id-core (https://github.com/worldcoin/world-id-protocol)
└── idkit-core (Rust Crate with base functionality)
├── idkit-core-js — Raw bindings with base functionality [Package: idkit-core]
│ └── idkit — React package with UI support (Package: idkit)
├── idkit-swift (Package: IDKit)
└── idkit-kotlin (Package: com.worldcoin.idkit)
```

## Documentation

All the technical docs for the World ID SDK, World ID Protocol, examples, guides can be found at https://docs.world.org/

## License

MIT License - see [LICENSE](./LICENSE) for details.
MIT License - see [LICENSE](./LICENSE) for details.
2 changes: 1 addition & 1 deletion js/examples/browser/vite.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export default defineConfig({
},
},
server: {
port: 3000,
port: 4000,
open: true,
},
});
12 changes: 6 additions & 6 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 16 additions & 2 deletions rust/core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ repository.workspace = true
authors.workspace = true
description = "Core Rust implementation of IDKit - World ID SDK for Relying Parties"

[lib]
name = "idkit"
crate-type = ["rlib", "cdylib", "staticlib"]

[dependencies]
serde = { workspace = true }
serde_json = { workspace = true }
Expand All @@ -22,6 +26,11 @@ ruint = { workspace = true }
uniffi = { workspace = true, optional = true }
uuid = { workspace = true, optional = true }
urlencoding = { workspace = true, optional = true }
wasm-bindgen = { workspace = true, optional = true }
wasm-bindgen-futures = { workspace = true, optional = true }
js-sys = { workspace = true, optional = true }
web-sys = { workspace = true, optional = true }
serde-wasm-bindgen = { version = "0.6", optional = true }

# Platform-specific HTTP client
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
Expand All @@ -39,9 +48,14 @@ native-crypto = ["aes-gcm"] # AES-256-GCM encryption for native platforms
wasm-crypto = ["aes-gcm"] # AES-256-GCM encryption for WebAssembly

# Language bindings
uniffi-bindings = ["uniffi"] # Enable UniFFI scaffolding for Swift/Kotlin bindings
ffi = ["uniffi", "native-crypto", "bridge", "dep:tokio"] # Enable UniFFI scaffolding for Swift/Kotlin bindings
uniffi-bindings = ["ffi"] # Deprecated alias for ffi feature
wasm-bindings = ["wasm-crypto", "bridge-wasm", "dep:wasm-bindgen", "dep:wasm-bindgen-futures", "dep:js-sys", "dep:web-sys", "dep:serde-wasm-bindgen"] # Enable WASM bindings

# Protocol features
bridge = ["uuid/v4", "reqwest", "dep:tokio", "dep:urlencoding"] # Bridge client and session management for verifications
bridge-wasm = ["uuid/js", "reqwest", "dep:urlencoding"] # Bridge for WASM (no tokio)
verification = ["reqwest", "dep:tokio"] # Backend proof verification via Developer Portal API
verification = ["reqwest", "dep:tokio"] # Backend proof verification via Developer Portal API

[package.metadata.wasm-pack.profile.release]
wasm-opt = false # Disable wasm-opt due to compatibility issues with bulk memory operations
Loading