Microsoft Graph SDKs - Requirements and Design

This repository holds documents related to current and on-going work on Microsoft Graph SDKs. The following diagram shows a high level view of the SDK component architecture. The goal is to enable developers to opt-into functionality that they wish to use. Over time all the SDKs will be adapted to follow this pattern.

Component Architecure

SDK Features Support

Component Feature .net Java JS ObjC Powershell PHP Ruby Python Go
  Authorization Handler          
  Retry Handler          
  Redirect Handler          
  Compression Handler N N N          
  Logging Handler O                
  Telemetry Handler          
  Connection Management                  
  Long Running Operations                  
  Chaos Handler     O            
  Service Discovery Handler                  
  Batch Request Content          
  Batch Response Content          
  Multipart Content              
  Error Content                  
Graph Components                    
  Client Factory          
  Response Handling              
  File Upload            
  Page Iterator          
  Authentication J / A          

✓ - Completed
O - In progress N - Native library support

Supported Languages


Role Repo Packages
Service+Models msgraph-sdk-dotnet Nuget
Core msgraph-sdk-dotnet Nuget
Auth msgraph-sdk-dotnet-auth Nuget
Beta msgraph-beta-sdk-dotnet Nuget


Role Repo Packages
Service+Core msgraph-sdk-javascript  
Models msgraph-typescript-typings  


Role Repo Packages
Service+Models msgraph-sdk-java  
Core msgraph-sdk-java-core  
Auth msgraph-sdk-java-auth  
Auth msgraph-sdk-android-auth  

Java Core is based on the OkHttp.

Objective C

Role Repo Packages
Core msgraph-sdk-objc  
Auth msgraph-sdk-objc-auth  
Models msgraph-sdk-objc-models  


Role Repo Packages
Service+Models msgraph-sdk-php  


Role Repo Packages
All msgraph-sdk-ruby  


Role Repo Packages
All msgraph-sdk-python  


View or log issues on the Issues tab in the repo.

Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT license.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact with any additional questions or comments.