I’m new to Swift and it wasn’t immediately clear how to easily import and use Boost Framework functions, so here’s a very basic example for anyone else wanting to do this.

Boost Usage Example


  • Xcode
  • Swift 5.7+

Additional Notes

Quick Start

  • Clone the repository
  • Load the included Workspace in Xcode: ./SwiftBoostExample.xcworkspace
  • Update signing & capabilities if needed
  • Select destination
  • And run!


Installing Boost via CocoaPods (optional)

I found it easiest to install Boost using CocoaPods since it automatically creates a Workspace and .xconfig file with the appropriate header search paths. Here’s how to do that:

  • Install CocoaPods. See instructions here: https://cocoapods.org/
  • Create a Podfile with the following contents:

target 'SwiftBoostExample' do
  pod 'boost', '~> 1.51.0'
  • Open terminal and run pod install in the repository root. It may take a very long time to complete the first time.

(Note: Boost 1.51 is rather old but other pod versions were throwing errors during compilation due to missing includes in the podspec. See https://github.com/CocoaPods/Specs/tree/master/Specs/9/9/d/boost for available podspec versions)

Updating compiler flags

  • Add the following flags to Build Settings -> Other Swift Flags:


Swift Compiler Flags

  • If you didn’t install with CocoaPods then you also need to add the Boost path to Build Settings -> Swift Compiler - Search Paths -> Import Paths

Create BoostFramework group, header and modulemap

BoostFramework Group

BoostFramework.hpp example

#ifndef BoostFramework_hpp
#define BoostFramework_hpp


#include <stdio.h>
#include <boost/math/special_functions/prime.hpp>
#include <boost/math/special_functions/zeta.hpp>
#include <boost/throw_exception.hpp>

uint32_t prime(uint32_t n) {
    return boost::math::prime(n - 1);

double zeta(double z) {
    return boost::math::zeta(z);

void boost::throw_exception(std::exception const & e){
  //TODO: handle exception

#endif /* BoostFramework_hpp */


module BoostFramework {
    header "BoostFramework.hpp"
    requires cplusplus


View Github