Atlas is available for three platforms. Choose the one that matches your application:
Node.js
Browser/WASM
Rust
Requirements
- Node.js 18 or higher
- npm, pnpm, or yarn
Install package
npm install @concrete-security/atlas-node
Prebuilt native binaries are included for:
- macOS (x64, Apple Silicon)
- Linux (x64, arm64)
- Windows (x64, arm64)
The correct binary is automatically selected during installation based on your platform.Verify installation
Create a test file to verify the installation:import { createAtlsFetch } from "@concrete-security/atlas-node"
console.log("Atlas Node.js package installed successfully!")
console.log(typeof createAtlsFetch) // "function"
Run it:TypeScript support
TypeScript definitions are included automatically. No additional @types packages are needed.import {
createAtlsFetch,
createAtlsAgent,
AtlsAttestation,
Policy
} from "@concrete-security/atlas-node"
Next steps
Requirements
- Modern browser with WebAssembly support
- npm, pnpm, or yarn (for bundler-based projects)
Install package
npm install @concrete-security/atlas-wasm
The package includes prebuilt WASM binaries. No additional build steps are required.Install proxy
Browser applications require a WebSocket-to-TCP proxy:cargo install atlas-proxy
The proxy requires an allowlist for security:# Required: set allowed targets
export ATLS_PROXY_ALLOWLIST="llm.example.com:443,api.example.com:443"
# Optional: set listen address (defaults to 127.0.0.1:9000)
export ATLS_PROXY_LISTEN="127.0.0.1:9000"
# Start proxy
atlas-proxy
The ATLS_PROXY_ALLOWLIST is required. The proxy will reject all connections without it. This prevents SSRF attacks.
Verify installation
Create a test HTML file:<!DOCTYPE html>
<html>
<head>
<title>Atlas WASM Test</title>
</head>
<body>
<h1>Atlas WASM Test</h1>
<div id="output"></div>
<script type="module">
import { init, createAtlsFetch } from "@concrete-security/atlas-wasm"
await init()
document.getElementById("output").textContent = "Atlas WASM loaded successfully!"
</script>
</body>
</html>
Serve it with a local HTTP server:Bundler configuration
Vite
No special configuration needed. Vite handles WASM automatically.Webpack
Add WASM support to your webpack config:module.exports = {
experiments: {
asyncWebAssembly: true
}
}
Next.js
Add WASM support to next.config.js:module.exports = {
webpack: (config) => {
config.experiments = {
...config.experiments,
asyncWebAssembly: true
}
return config
}
}
Next steps
Requirements
- Rust 1.75 or higher
- Cargo
Install Rust
If you don’t have Rust installed:curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Add to project
Add to your Cargo.toml:[dependencies]
atlas-rs = "0.2"
tokio = { version = "1", features = ["rt", "macros", "net"] }
Or use cargo add:cargo add atlas-rs
cargo add tokio --features rt,macros,net
Verify installation
Create a test file:use atlas_rs::{Policy, DstackTdxPolicy};
fn main() {
let policy = Policy::DstackTdx(DstackTdxPolicy::dev());
println!("Atlas Rust crate installed successfully!");
println!("Policy: {:?}", policy);
}
Build and run:Optional features
Atlas supports optional features for debugging:[dependencies]
atlas-rs = { version = "0.2", features = ["debug-logging"] }
Available features:
debug-logging: Enable debug logging unconditionally (useful for WASM where env vars don’t work)
Atlas works on:
- Linux (x64, arm64): Full support
- macOS (x64, Apple Silicon): Full support
- Windows (x64, arm64): Full support
- WebAssembly: Browser support via
atlas-wasm package
Development dependencies
For development and testing:[dev-dependencies]
tokio = { version = "1", features = ["rt", "macros", "rt-multi-thread", "net", "io-util"] }
serde_json = "1.0"
Next steps
Version compatibility
Atlas follows semantic versioning. Current versions:
All platforms implement the same aTLS protocol and are interoperable. A Node.js client can connect to a Rust server, and vice versa.
Troubleshooting
Node.js: Native module not found
If you see “Cannot find native module” errors:
- Ensure you’re using Node.js 18 or higher
- Try reinstalling:
npm install --force @concrete-security/atlas-node
- Check that your platform is supported (see supported platforms above)
Browser/WASM: Module not loading
If the WASM module fails to load:
- Ensure you’re calling
await init() before using other functions
- Check your bundler configuration (see bundler sections above)
- Verify the WASM file is being served with
application/wasm MIME type
Rust: Compilation errors
If you encounter compilation errors:
- Update Rust:
rustup update
- Ensure Rust 1.75 or higher:
rustc --version
- Clean build cache:
cargo clean
Proxy: Connection refused
If the proxy won’t start:
- Verify
ATLS_PROXY_ALLOWLIST is set
- Check that port 9000 is available (or use
ATLS_PROXY_LISTEN)
- Ensure the proxy binary has execute permissions
Getting help
If you need assistance:
Next steps
Quickstart
Get up and running with a working example
Platform guides
Complete guides for each platform
Policy configuration
Configure attestation policies
Examples
More examples and integration patterns