You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Contributing to Coldwire project is simple, and is no different than any other Free and Open-Source project:
2
+
3
+
Simply fork the repo, hack on the code, and do a pull request!
4
+
5
+
**However**, some specific parts of **Coldwire** require *careful* thought before contributing changes
6
+
7
+
8
+
## Protocol improvements and or adjustments
9
+
Before hacking on our codebase to support a new protocol feature, or to improve an existing one.
10
+
Coldwire depends on 2 seperate protocols: `Coldwire protocol`, and the `Strandlock protocol`
11
+
12
+
you *should* first read the related protocol specification, and modify it to reflect what you wish to be added / improved upon.
13
+
14
+
To summarize: Contributing major changes doesn't start with code, but with solid protocol improvements (that can be reasoned about), and that doesn't decrease our security posture (considering our threat model).
15
+
16
+
17
+
## `browsers_headers.json`
18
+
Before adding new entry, or modifying an existing one, please note that the *order* of the headers matters!
19
+
**Do not** trust Developer tools on whatever browser you're using. The ordering of headers in a browser are not in the order that they are sent on the wire. Failure to do so, would actually create an even uniquer fingerprint of our users.
20
+
21
+
Additionally, all headers names must be lowercase for interoperability with HTTP/2
22
+
23
+
A very important note, is to **never** include any headers that may indicate to a server you're intending to receive compressed (gzip, etc) response!.
24
+
25
+
Do not misunderstand, *include* the header (i.e. accept-encoding), but do not put in it actual encoding names.
26
+
27
+
Instead, Spam "Coldwire" until the string reaches the same length of the intended "accept-encoding". Truncate "Coldwire" string as needed.
28
+
29
+
And lastly, please do not contribute obsecure browsers headers! Keep all additions to be popular, mainstream browsers.
30
+
31
+
32
+
## Features that **will never be added**:
33
+
Here are some features that we have decided against implementing after thoughtful consideration, as they overcomplicate the protocol, and increase the attack-surface in general:
34
+
- Media parsing or sending in any of its forms (images, videos, SVGs, etc)
35
+
- Text formating or markup languages support (rich text formating, etc.)
36
+
- Multi-device support for the same account.
37
+
- Open/Public groups
38
+
- Voice, and video calls.
39
+
- Voice messages
40
+
- Compression support
41
+
- Metadata-rich features (avatars, vanity server-side usernames, bios, delievery receipts, read receipts, online status, last seen status, user-created server authentication passwords)
42
+
- Account recovery
43
+
- Persistent chat history
44
+
- Any "convenience" features that could impact security and or privacy (clickable URLs, keyboard hotkeys, keyboard shortscuts beyond the basic CTRL-C CTRL-V)
0 commit comments