Installation
This guide will get you up and running with the SCIM server library in under 5 minutes.
Prerequisites
- Rust 1.75 or later - Install Rust
To verify your installation:
rustc --version
cargo --version
Adding the Dependency
Add to your Cargo.toml
:
[dependencies]
scim-server = "=0.3.7"
tokio = { version = "1.0", features = ["full"] }
serde_json = "1.0"
Note: The library is under active development. Pin to exact versions for stability. Breaking changes are signaled by minor version increments until v1.0.
Verification
Create a simple test to verify the installation works:
use scim_server::{ ScimServer, providers::StandardResourceProvider, storage::InMemoryStorage, RequestContext }; use serde_json::json; #[tokio::main] async fn main() -> Result<(), Box<dyn std::error::Error>> { let storage = InMemoryStorage::new(); let provider = StandardResourceProvider::new(storage); let server = ScimServer::new(provider)?; let context = RequestContext::new("test".to_string()); let user_data = json!({ "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], "userName": "john.doe", "active": true }); let user = server.create_resource("User", user_data, &context).await?; let retrieved = server.get_resource("User", user.get_id().unwrap(), &context).await?; assert_eq!(retrieved.get_attribute("active").unwrap(), &json!(true)); Ok(()) }
Run with:
cargo run
If this runs without errors, your installation is working correctly!
Next Steps
Once installation is complete, proceed to:
- Your First SCIM Server - Build a complete working implementation
- Configuration Guide - Learn about storage backends and advanced setup
- API Reference - Explore all available operations
For production deployments, see the Production Setup Guide for information about system requirements, databases, and scaling considerations.