josephg / statecraft Goto Github PK
View Code? Open in Web Editor NEWManage state with finesse
Manage state with finesse
Add documentation to repo.
Add a graphql query type in the interfaces, and add a simple graphql store which can fetch / subscribe through a provided graphql schema.
The schema types should be exposed back out via storeinfo. Need to figure out how to send this to net clients.
When opening one of the statecraft demos in firefox, the websocket connection stalls for ages. Weirdly opening another tab via chrome seems to make the firefox tab start working.
This is sometimes hard to reproduce.
There's probably some race condition where FF's timing is slightly different from chrome / safari. Not sure if this is a bug in ws
or a bug in how I'm using websockets here.
Right now all the stores are in a big monolithic directory.
They should be pulled out into small, self contained (& tested) modules. I'm not sure if it makes sense to break them into a bunch of repos or not. Maybe something like:
streamToIter
, iterGuard
statecraft/core
: All the stores with no dependancies. Mem kv & single, router, net, map, poll?statecraft/*
: Separate module for any of the "heavy" stores, which have more complex behaviour. Things like the foundationdb wrapper and OT stores.This leaves a pretty heavy core. I need to make sure that specific parts can be targetted & pulled in to the browser in an isolated way that won't pull in half of the code.
The first step will be to just refactor this repo into a series of directories based on the module structure. After that I might move the code into a set of repos.
Statecraft needs an authentication store.
To make that work we need to pass session information through all operation options objects. It would be ignored by the root stores, but added, passed and handled through stores which are all about that.
We don't need a stable auth store pre 1.0, but I don't want to be adding options after that point.
The networking protocol should be flattened into a series of arrays instead of named fields
Change versions to be a list of v info, rather than an object.
The storeinfo object describes sources globally for the store its representing. This is a bit bad for stores which:
It would be better to do storeinfo on a range-by-range basis in the store's KV space. We should fix this before stabilisation.
Make first draft of website. Host on statecraft.io
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.