Capability Security for Everyone, Finally!

Spritely's Approach

Randy Farmer (he/him) <randy@spritely.institute>

Christine Lemmer-Webber (she/her) <christine@spritely.institute>

https://spritely.institute

Hackers 2023

Spritely: back to the future

Goblins: distributed, cooperative, transactional programming

Distributed security you can understand

  • If you don't have it, you can't use it
  • It's just argument passing!

OCapN: the Object Capability Network

Time-traveling distributed debugger

(define (evaluate expr env)
  (match expr
    ;; Support builtin types
    ((or #t #f (? number?))
     expr)
    ;; Quoting
    (('quote quoted-expr)
     quoted-expr)
    ;; Variable lookup
    ((? symbol? name)
     (env-lookup env name))
    ;; Conditionals
    (('if test consequent alternate)
     (if (evaluate test env)
         (evaluate consequent env)
         (evaluate alternate env)))
    ;; Lambdas (Procedures)
    (('lambda (args ...) body)
     (lambda (. vals)
       (evaluate body (extend-env env args vals))))
    ;; Procedure Invocation (Application)
    ((proc-expr arg-exprs ...)
     (apply (evaluate proc-expr env)
            (map (lambda (arg-expr)
                   (evaluate arg-expr env))
                 arg-exprs)))))

We are a research institution & that means collaboration

Now (pre-)announcing: OCapCon - BOF tonight!

Join us!

https://community.spritely.institute (Code: OCAPN2023)