Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/treeplate/isd_treeclient
https://github.com/treeplate/isd_treeclient
Last synced: 16 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/treeplate/isd_treeclient
- Owner: treeplate
- Created: 2021-08-07T19:42:28.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-11-29T20:17:24.000Z (about 1 month ago)
- Last Synced: 2024-12-07T20:05:22.731Z (29 days ago)
- Language: Dart
- Size: 519 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# isd_treeclient
This app is a client for [ISD](https://interstellar-dynasties.space).
## Server-Client Protocol
See [the official protocol](https://software.hixie.ch/fun/isd/test-2024/servers/src/README.md), as well as the official [system](https://software.hixie.ch/fun/isd/test-2024/servers/src/systems-server/README.md), [dynasty](https://software.hixie.ch/fun/isd/test-2024/servers/src/dynasties-server/README.md), and [login](https://software.hixie.ch/fun/isd/test-2024/servers/src/login-server/README.md) sub-protocols.
## Cookie Storage
This app saves its state between runs. When using package:web, it uses local storage, but when using dart:io, it has to save it to a file. This file is called "cookies.save", and uses its own format, described here.### Map => .save file
Each entry in the map is separated by a newline followed by a null byte. The entries themselves are encoded as key, colon, null, value.
### .save file => Map
Split the raw file data on newline-null, making a list of raw entries, and then split each entry on colon-null, making a list [key, value]. Now you have a List>, and can map each List to a MapEntry, and then use Map.fromEntries to complete the decoding.
## Tools
https://github.com/treeplate/isd_starnames is a tool for finding stars with specific names.