• Stars
    star
    295
  • Rank 140,902 (Top 3 %)
  • Language
    Swift
  • Created about 7 years ago
  • Updated about 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

This repository is a companion to the article "Data Laced with History: Causal Trees & Operational CRDTs", where I examine the fascinating new class of "operational" CRDTs in detail. Not a framework; for educational use only. Please don't use this in production unless you know what you're doing!

A generic implementation of Victor Grishchenko's Causal Tree CRDT, written in Swift. State-based (CvRDT) implementation. Features many tweaks, including a site identifier map, atom references, and priority atoms. Uses Lamport timestamps instead of "awareness".

Two pieces of companion software are included. The first is a macOS app that simulates device sync over a hypothetical network with any arbitrary topology and any number of partitions. The app is designed for testing the resiliency of a CRDT under difficult network conditions and includes editing support for text and vector graphics. The second is a very basic, CT-based text editor for iOS that works equally well online and offline, syncs documents over CloudKit, and supports real-time collaboration over CloudKit Sharing. No extra servers required! (Such is the glory of CRDTs.)

Performance is good: everything should be O(nlogn) or faster.

More Repositories

1

sensible-side-buttons

A macOS menu bar app that enables system-wide navigation functionality for the side buttons on third-party mice.
C
1,863
star
2

tasty-imitation-keyboard

A custom keyboard for iOS8 that serves as a tasty imitation of the default Apple keyboard. Built using Swift and the latest Apple technologies!
Swift
1,194
star
3

good-spirits

A drink tracker for iOS with Untappd and HealthKit integration.
Swift
176
star
4

backgroundifier-buddy

Swift
40
star
5

cyrillic-transliterator

This set of apps allows you to type Latin characters in OSX and have them transliterate in real time into Cyrillic characters. This includes multi-character transliterations like 'sh'/'ш'.
Objective-C
40
star
6

backgroundifier-public

Code for my Backgroundifier image conversion droplet for OSX. UI nib and other assets not included and not licensed for reuse. Code licensed under BSD.
Swift
30
star
7

faux-testing-keyboard

A fake 3rd party keyboard intended to debug issues with constraints and rotations, as well as to compare performance between manual layout and autolayout.
Swift
12
star
8

app-pauser

A simple app that allows you to suspend and resume applications and processes running on your system, bringing them down to 0% CPU.
Objective-C
10
star
9

aumidisynth-offline-render-test

Trying to get offline render working with kAudioUnitSubType_MIDISynth and AVAudioEngine. (Update: it works!)
Objective-C
6
star
10

force-button

A pressure sensitive, procedural, switch-like UIControl button & selection popup. Feel free to assume a BSD license.
Swift
3
star
11

chicken-scratch

A macOS Notification Center text field, in the same vein as tyke.app.
Swift
2
star
12

archagon.net

My Jekyll-based homepage. Not actually powered by Github Jekyll β€” Github Pages only serves the locally-compiled HTML and CSS.
CSS
2
star
13

uifeedbackgenerator-lag-test

UIFeedbackGenerator seems to have some latency. This is the simplest possible test case I could think of. https://lists.apple.com/archives/cocoa-dev/2016/Oct/msg00002.html
Swift
2
star
14

degausser

A nostalgic faux degauss button in your Mac menu bar! (WIP) Goals: explore shaders, GL, and procedural generation; figure out how to fake an interesting analog graphical effect in software.
C++
2
star
15

ABExpandingViewController

A popover-like container view controller that shrinks and contracts based on its two child view controllers.
Objective-C
1
star
16

a-jekyll-blog

A test Jekyll blog for messing around.
CSS
1
star
17

la-mulana-hd-text-encoder-decoder

A modified version of the script used to generate the La-Mulana HD Wiki text dump. The script can now re-encode the .dat file, allowing any changes to be used in the game.
Python
1
star
18

grammatical-passphrase-generator

A JS+HTML-based variant on diceware that follows grammatical sentence structure.
1
star
19

ios-bluetooth-headphone-unsleeper

My BT headphones (MDR-1RBT v1) disable their radio when there's more than a few seconds of silence: fine for music, but horrible for cleaned-up audiobooks and podcasts. This simple app plays an inaudible sound in the background to prevent this. It also starts a null recording session in order to show the expanded red status bar (as a reminder).
Swift
1
star