What is EOSFramework?

EOSFramework is for developers who wish to develop Mac applications that have the ability to interact with Canon DSLR cameras. It acts as a wrapper around Canon’s EDSDK framework, making it simpler to use and easier to fit into a Cocoa application. It can do (almost) everything that EDSDK can do, such as getting and setting properties of a camera, managing camera files and sending commands. The framework was initially designed to handle a large number of cameras at once, but it works just as well with a single camera.

Why did you create EOSFramework?

EOSFramework was created as the underlying part of another project, in which multiple cameras needed to be controlled. Canon’s EDSDK is difficult to use, unsafe, and difficult to integrate into a Cocoa application due to fact that is written in pure C. EOSFramework aims to solve these issues, as well as significantly reduce the amount of code that you need to write.


This example shows how to use the framework to get each connected camera, and print its description.
//get a list of cameras
NSArray* cameraList = [[EOSManager sharedManager] getCameras];
//loop through each camera
for (EOSCamera* camera in cameraList){
    //print description
    NSLog(@"Found camera: %@", [camera description]);

How to get started

First, downoad the latest version of EOSFramework, or compile the source code yourself. The QuickStart guide has some instructions on how to import the framework, as well as some example code to help you get started. If you need a more in depth look at the framework, check out the API Reference.


Currently, EOSFramework only works in 64bit mode, therefore requiring the 64bit version of EDSDK. This means that some features, such as live view, are not supported.