Netscape Navigator aa66a67dd6 | ||
---|---|---|
fixtures | ||
project | ||
targets | ||
.gitignore | ||
LICENSE | ||
Makefile | ||
README.md | ||
build.sh | ||
coverage.sh | ||
tests.sh |
README.md
Pigeon CLI
A single executable to manage a Pigeon node.
Project Status
Don't use the Go version yet. If you want something stable, there is a Ruby version that is feature complete.
Setup
By default, data is stored in ~/.pigeon
.
You can override this value by specifying a PIGEON_PATH
ENV var.
Help Wanted
Want to get involved? Below are a few things I need help with.
Email contact@vaporsoft.xyz
if you have any questions.
- Writing a BNF grammar for message parsing
- Test coverage increases
- Manual QA of features and edge cases
- Providing constructive feedback on documentation
- Cross-compiling windows binaries
- Security auditing and vulnerability discovery. Please send security concerns to
contact@vaporsoft.xyz
privately.
TODO
- Add forgery protection tests
- Add a real testing lib to DRY things up.
- Validate and scrutinize
depth
,prev
fields when ingesting message bundles to account for poorly written peer clients. - Get a good CI system going? Run tests at PR time, provide prebuilt binaries, prevent coverage slips, etc..
- Add a
transact()
helper to ensure all transactions are closed out. - Switch to SQLX for extra sanity.
- Write docs for all CLI commands / args AFTER completion.
- Start using the
check
helper instead oferror != nil
. - Update spec to only allow UPPERCASE MULTIHASHES
- Implement
query.pgn
protocol, as outlined here and here. - Add a note about "shallow" vs. "deep" verification.
- Finish all the things below
Done? | Noun | Verb | Flag / arg 1 | Flag 2 |
---|---|---|---|---|
bundle | ingest | |||
message | show | message mhash | ||
message | find | --all | ||
blob | remove | mhash | ||
message | find | --last | ||
draft | create | |||
draft | publish | |||
draft | show | |||
draft | update | --key=? | --value=? | |
bundle | create | |||
X | blob | find | ||
X | blob | add | file path | |
X | blob | add | STDIO pipe | |
X | peer | untrack | peer mhash | |
X | peers | list | ||
X | peer | block | peer mhash | |
X | peer | follow | peer mhash | |
X | identity | show | ||
X | identity | create | ||
X | help | |||
X | version |
Run Tests
Without coverage:
./tests.sh
With coverage:
./coverage.sh
Build Project
./build.sh