Spritely, Guile, Guix: a unified vision for user security

https://spritely.institute

The Spritely Institute: a research institution

Research means collaboration

On "Networked Communities" at a high level

ActivityPub-logo-large.png

What we're going to accomplish

  • User freedom
  • Safety for everyone
  • Networked programming like y'all have never seen
  • Take over the web!
  • Take over operating systems (together)!

Language vision: Scheme / Guile

Lisp is clay

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!

Lambda: the Ultimate Security Model

Easy local transactions

(define (^mint _bcom)
  (define-values (decr-seal decr-unseal _decr-sealed?)
    (make-sealer-triplet 'mint))
  (define (^purse _bcom initial-balance)
    (define-cell balance
      initial-balance)
    (define (<=-balance? amount)
      (<= amount ($ balance)))
    (define/contract (decr amount)
      (-> (and/c integer? (>=/c 0) <=-balance?)
          any/c)
      ($ balance (- ($ balance) amount)))
    (define/contract (deposit-method amount src)
      (-> (and/c integer? (>=/c 0)) any/c any/c)
      ((decr-unseal ($ src 'get-decr)) amount)
      ($ balance (+ ($ balance) amount)))
    (methods
     [(get-balance) ($ balance)]
     [(sprout) (spawn ^purse 0)]
     [deposit deposit-method]
     [(get-decr) (decr-seal decr)]))
  (define/contract (fiat-make-purse initial-balance)
    (-> (and/c integer? (>=/c 0)) any/c)
    (spawn ^purse initial-balance))
  (methods [new-purse fiat-make-purse]))

Time-travel Distributed Debugging

OCapN: The Object Capability Network

Hoot: putting Spritely's tech in the hands of users

(define (update from to)
  (do ((y 0 (+ y 1)))
      ((= y grid-size))
    (do ((x 0 (+ x 1)))
        ((= x grid-size))
      (let* ((t (grid-ref from x y))
             (t* (cond
                  ((= t empty) empty)
                  ((= t cu)
                   (if (<= 1 (neighbors from x y) 2) ehead cu))
                  ((= t ehead) etail)
                  ((= t etail) cu))))
        (grid-set! to x y t*)))))

Secure OS vision

Guix build daemon + Goblins

Composable OS safety

(let* ((network-service (make-network-service))
       (tor-service (make-tor-service #:network network-service)))
  ...)

Shepherd + Goblins

Calls to action!

Make something cool!

With Goblins! With Hoot!

Help us build the Goblins + Guix dream!

Join us as an institutional partner!

Donate!

See the donate button on https://spritely.institute

We are a 501(c)(3) nonprofit in the public interest!

Say hello and get stickers!

They're REALLY COOL!

Let's build it all together!

https://community.spritely.institute

https://spritely.institute