xj9 committed its a standardLatest: 6f3a370 on 3/20/2020, 7:47:18 PM | |
📄 | .gitignore |
📄 | LICENSE |
📄 | README.md |
📄 | WAIVER |
📁 | doc |
tracker(1) - a cybermapping toolkit
May you do good and not evil May you find forgiveness for yourself and forgive others May you share freely, never taking more than you give
THIS IS ALPHA SOFTWARE, USE AT YOUR OWN RISK
like it says on the tin, tracker is about keeping an eye on stuff. interact with all kinds of information and media in one place including feddy frens, peertube channels, rss, maybe nntpchan, using an eventually native client written in elm.
S-expressions were originally intended only for data to be manipulated by M-expressions, but the first implementation of Lisp was an interpreter of S-expression encodings of M-expressions, and Lisp programmers soon became accustomed to using S-expressions for both code and data.
— https://en.wikipedia.org/wiki/S-expression#Use_in_Lisp
elm seems like a nice m-expression lang to build on top of chicken scheme. i kinda wanted to make a scheme dialect, but i don't think that will help scheme particularly. rather i would like to try taking the M-expression route and see where it takes us.
this will make adoption easier, while allowing use to develop the majority application in portable elm. in the future we can write in an elm compiler in chicken scheme and attach a selection of runtime libraries that can be used to run tracker clients natively on small computers. hopefully this will also give us a chance to drag a bunch of web data off the web and onto the mesh as well.
sorry friends, but v1 will be web-based.
clients
tracker is an elm application. web is just a stepping stone to bigger and better things.
tracker is available as a progressive electron and mobile app. long term we plan to migrate these to more efficient native platforms. check the relevent platform repo for install instructions.
platform | repo | download link |
---|---|---|
ios/android | xj9/g/tracker-cordova | - |
electron (linux/macos/windows) | xj9/g/tracker-electron | - |
linux/illumos | xj9/g/tracker-native | - |
dependencies
contributing
non-trivial patches must be accompanied by a digital signature indicating that you accept the terms of the WAIVER file in this project repo. a gpg signature or ssb message is acceptable.
gpg --no-version --armor --sign WAIVER
editor
dependencies
tracker is an elm application. web is just a stepping stone to bigger and better things.
editor
questions? ideas? problems?
identity
tracker is designed around a subjective identity model. users can associate various identities to their passport which is stored in an encrypted blob. this passport allows seamless interactions with many networks at once.
storage
tracker is designed to work with many storage systems. in this proof of concept
application we are using pouchdb to store and query a simple graph database.
pouchdb can easily replicate with couchdb servers over http and other tracker
clients over webrtc. there are many relay servers that can be used to enable
webrtc connectivity and desktop users can install an overlay network
and/or a couchdb server to communicate over an encrypted mesh and improve
performance.
- https://pouchdb.com/api.html
- https://github.com/scottmtp/pouch-replicate-webrtc
- https://couchdb.apache.org/
git
bit torrent
binary objects and other datasets are stored in bit torrent. web browsers normally cannot communicate with normal bit torrent clients. the only way around this in v1 is to use electron and cordova builds OR run
tracker-hypergate
on your own infrastructure to provide indirect access to native peers.
- https://webtorrent.io/docs
- https://github.com/webtorrent/webtorrent-hybrid
- https://github.com/feross/chrome-net
network
named data networking
this will eventually become the standard networking system for tracker clients, but bridges will always be an important part of the tracker network. after all, the real goal here is to organize and share information in a way that is completely independent of any fixed infrastructure.
rtc-switchboard
mesh
there are many options for interfacing with peers over the internet and other networks. we plan to officially support the following overlays:
loki
tor
yggdrasil
see also
Built with git-ssb-web