Skip to content

Instantly share code, notes, and snippets.

TLDR

I took a deep dive into CapnWeb. What I expected to find was a browser-first Cap'n Proto successor with rigid schemas replaced by flexibile JSON-compatible data structures. What I found instead was a pared-down pairwise protocol with an interesting expression format.

OCapN on the otherhand has the three-way protcol interactions with a flexible data model with object reference stability.

Comparing OCapN and CapnWeb

https://www.redfin.com/OR/Portland/6109-SW-Thomas-St-97221/home/173018992?utm_source=android_share&utm_medium=share&utm_nooverride=1&utm_content=link
https://www.redfin.com/OR/Portland/3246-SW-Cascade-Ter-97205/home/26369492?utm_source=android_share&utm_medium=share&utm_nooverride=1&utm_content=link
@kumavis
kumavis / test.scm
Created May 5, 2025 10:16
attempt to demonstrate desc:answer lacks an inverse representation in OCapN
(define-values (a-vat a-netlayer a-mycapn)
(make-new-node "a"))
(define-values (b-vat b-netlayer b-mycapn)
(make-new-node "b"))
(define (^greeter _bcom our-name)
(lambda (their-name)
(format #f "Hello ~a, my name is ~a" their-name our-name)))
(define (^echo _bcom)
@kumavis
kumavis / readme.md
Last active May 4, 2025 10:36
OCapN concepts
@kumavis
kumavis / lazy-promise.js
Last active May 4, 2025 01:29
LazyPromise
/**
* A LazyPromise doesn't run its executor until .then, .catch, or .finally is called,
* or the promise is awaited.
* Unfortunately, `@endo/promise-kit`'s isPromise returns false for instances of LazyPromise.
* However, LazyPromise instances will return true for instanceof Promise.
*/
export class LazyPromise extends Promise {
#isListening = false;
#executor;
@kumavis
kumavis / gist:8202447
Last active September 8, 2022 07:50
dynamically creating a secure iframe
//
// Update: Resolved. TL;DR: chrome dev tools troll.
// Outputting iframe object to console resulted in enumeration of properties, throwing the SecurityError
// Note: However, accessing iframe.contentDocument does throw a SecurityError so iframe.contentDocument.write is not possible.
//
//
// Problem
//
# Ethereum Browser - MIST Analogue
============== WHAT ============
### Goals:
(1) Identity Management
(2) Wallet App
(3) Contract Browser
(4) Dapp runtime environment
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
.
.
,d88b, . __..-
888888 . .--SEAL:.
`?88P' . __ ,'WWII::.
.MW:`-. /WWII::..
. _.MWII:'. `. . ,'WII::..
_.-MWII::'. `-. ,'WWI::.
. _..vvvv,'WWII::' `.'WII::.
,-'WI:'''/WII:'. \WI:.
@kumavis
kumavis / index.js
Created February 8, 2021 06:57
mini-moat
#!/usr/bin/env node
const { promisify } = require('util')
const sass = require('sass')
const { promises: fs } = require('fs')
const vm = require('vm')
// example()
// async function example(){
// const vmContext = vm.createContext()