ocaps is a library for working with object capabilities in Scala.

  • Revoker / Revocable classes for revoking capabilities.
  • Brand for sealing and unsealing capabilities
  • RevocableMembrane for revocation as an effect.
  • Macros for composition, attenuation, revocable and modulating capabilities.
  • No libraries dependencies (other than scala-reflect)

Documentation can be found at https://tersesystems.github.io/ocaps/

Examples can be found at http://tersesystems.github.io/ocaps/examples/

A guide to object capabilities can be found at http://tersesystems.github.io/ocaps/guide/

The ocaps library was presented as part of the Security in Scala presentation at Scaladays NYC 2018. Slides and video are available.


There is currently no compiled package available. RIP Bintray.

Add the following to build.sbt

// where latestVersion is defined up top
libraryDependencies += "ocaps" %% "ocaps-core" % latestVersion


To release a new version of ocaps:

sbt release

Updating Website

To update the website, change version.sbt so it's the release version and not snapshot (there should be a way to do this automatically) and then do the following:

> clean 
> makeSite
> previewSite
> ghpagesPushSite