61 Commits

Author SHA1 Message Date
Fletcher Dunn 320f0fe0f4 Move MacOS to its own workflow, so it can have its own badge 2024-09-09 09:28:20 -07:00
Fletcher Dunn fa6fae5bd5 Move the linux-flavors workflow to its own status badge.
I am tired of my build being red just because of some random issue with
Arch linux that I don't have the time to investigate.

Also, tweak name of the MacOS workflow.
2024-09-08 12:26:51 -07:00
Hussein Ait-Lahcen 611cf27e40 Introduce Rust binding 2024-03-13 16:39:23 -07:00
Fletcher Dunn 8e1f95bf95 Tweak wording about access on other platforms and stores.
I would love to give everybody access to the console code, but there are
just a bunch of practical constraints that make that difficult.
2023-05-28 11:42:31 -07:00
Fletcher Dunn e4601df658 Add a note about multiple lanes to the README. 2021-10-29 17:56:01 -07:00
Cyprien AUGIER ac4dbdf86b Fix typo in README.md 2021-10-04 11:51:25 -07:00
Fletcher Dunn 05fc8381bb Update README 2021-06-17 17:15:40 -07:00
Fletcher Dunn 166c04c6c2 Fix markdown links 2021-02-03 09:49:55 -08:00
Fletcher Dunn 744d142317 Add security policy
Much of this library is in Valve's hackerone security scope and
eligible for bounties.
2021-02-03 08:13:37 -08:00
Steven Noonan 793df49b72 first pass on moving to GitHub Actions
Signed-off-by: Steven Noonan <steven@valvesoftware.com>
2021-01-08 21:01:13 -08:00
Fletcher Dunn 2aba7012a8 Add ISteamNetworkingMessages to readme 2020-10-29 18:39:19 -07:00
Fletcher Dunn d90040ee2f Yes, even more updates to the README 2020-09-02 17:01:31 -07:00
Fletcher Dunn c5c774e685 Update README's
Delete roadmap section.  The P2P item is basically done.  P2P has its own
roadmap.  We have the issues list, and all of those items are things we
want to do.  I don't think having the roadmap is useful, or accurately
conveys priorities.

Go into just a bit more detail about the P2P basics in the main feature
summary.

Added some notes about symmetric connect mode, which is a really useful
and unique API feature.
2020-09-02 16:09:23 -07:00
Fletcher Dunn b9b4165100 Add link to Facepunch.Steamworks 2020-08-31 09:51:46 -07:00
Fletcher Dunn 1748a3b9b0 Update README regarding P2P support 2020-05-20 13:05:41 -07:00
NielsAD c5b5bead6d Add third party golang binding to readme. 2020-04-09 10:10:09 -07:00
Cory Hutchison 4a312476da Update README.md 2020-01-28 10:15:23 -08:00
Roger 39e403ff66 Adjust headers and button for accessiblity 2019-08-24 17:41:24 -04:00
Fletcher Dunn 4ea37fb89b Updated README.
Split out building stuff to a separate file.
2019-04-16 10:44:39 -07:00
Kyle Kukshtel 1a15795b11 Updates readme with note about openssl version for brew installs 2019-03-27 23:45:50 -04:00
Fletcher Dunn e2bed2133e Update README.
We already shipped Steamworks and released version 1.0!
2019-03-27 19:30:25 -07:00
Joakim Hellsén b772f3f58b Fix typo 2019-03-14 17:16:36 +00:00
Fletcher Dunn 9d13513a74 Update crypto requirements. 2019-02-01 16:29:42 -08:00
Fletcher Dunn 8ac50042a6 Update README
Add link to Steamworks API doc.

Clarify requirement about OpenSSL and the 25519-donna stuff.

Delete a weird paragraph.
2019-01-30 11:08:21 -08:00
Steven Noonan 13fbdbe1e3 remove libsodium completely
It was a good experiment to show that our reference code for
ed25519/curve25519 was slow. Now we just need to move to OpenSSL for
25519.

Signed-off-by: Steven Noonan <steven@valvesoftware.com>
2019-01-21 14:03:57 -08:00
Fletcher Dunn a8e20d1c6e Delete references to libsodium/
To avoid confusion until we fixed out if we will change our encryption parameters to match TLS, which would be necessary to support it.
2019-01-21 13:04:49 -08:00
Fletcher Dunn 63d95d737d Use AES-GCM for per-packet encryption.
Also tweak the way that the per-packet IV is constructed.  Previously,
64 bits were the packet number.  This meant that the attacker knew 64-bits
of the IV, while the other 64-bits were secret, generated by key exchange.
Now, the IV is adjusted by the packet number, so that all 128 bits are
unknown to an attacker, although he does know that the relationship
between one IV and the next.

This introduces a breaking wire incompatibility, so I bumped the protocol
version number as well as the minimum required version for the peer.  We
still have luxury of doing this sort of thing, but we won't once we make
the first release.  We'll need an exceedingly good reason to break backward
compatibility with older peers.  (Although, for example, if a security
vulnerability is detected, we may allow the application to control whether
it wishes to allow conneections from peers using the version with the
vulnerability.)

Fixes #43
2019-01-19 10:35:07 -08:00
Steven Noonan bc9b440ea8 README: call out compiler versions
Signed-off-by: Steven Noonan <steven@valvesoftware.com>
2019-01-16 19:58:58 -08:00
Steven Noonan c2cb6742e5 README: call out dependency versions
Signed-off-by: Steven Noonan <steven@valvesoftware.com>
2019-01-16 19:56:48 -08:00
Steven Noonan 13bb5351a7 README: add travis-ci build status badge
Signed-off-by: Steven Noonan <steven@valvesoftware.com>
2019-01-16 19:55:37 -08:00
Fletcher Dunn 140c4fe4d4 Added a link to C# binding project. 2019-01-16 17:44:59 -08:00
Fletcher Dunn c4a97732fd Update README.
Update roadmap section with note about  plans are for the current (FIRST!) release.

Delete comments about OpenSSL bloat.  That referred to a bunch of stuff that was being loaded in by opensslwrapper.  We still do have some cleanup to do here.  In particular, we'd like to be able to get OpenSSL to work for the 25519 stuff, and get rid of our reference code.  Another potential project is to use libsodium for everything, which may be leaner and faster -- however, that might require us to switch to AES-GSM.  That would be a fine idea, but it would introduce a wire incompatibility.  (We might end up doing this for the first release, to avoid having to deal with compatibilty issues.)

Also delete comments about STL container bloat.  I have converted almost all of the ordered maps to hashmaps, which do not do seperate heap allocations per item.  There are 2 or 3 remaining std::maps in the reliability layer, but those are constrained to a max size (to protect against a malicious peer), so I don't think this is high priority.  It would be good to fix this to limit the use of the heap to an absolute minimum, but for now tehre are more important issues.
2019-01-16 12:22:37 -08:00
Steven Noonan b72b8ba591 README.md: add documentation about installing libsodium
Signed-off-by: Steven Noonan <steven@valvesoftware.com>
2019-01-15 21:58:04 -08:00
Fletcher Dunn 8085c9c549 Added a simple chat client/server example. 2019-01-12 17:00:06 -08:00
Steven Noonan 37cd0e90f1 README.md: re-wrap lines
Signed-off-by: Steven Noonan <steven@valvesoftware.com>
2019-01-10 16:38:39 -08:00
Steven Noonan b7afecd1ea add Visual Studio Code workspace
Signed-off-by: Steven Noonan <steven@valvesoftware.com>
2019-01-10 16:38:18 -08:00
Fletcher Dunn b98cdc0ecf Merge pull request #33 from claushellsing/patch-1
Fix typo
2019-01-03 05:23:17 -08:00
Fletcher Dunn 5f8ecf1b86 Update roadmap 2019-01-03 05:20:06 -08:00
Rainer Eli 3e5a42a633 Fix typo 2018-10-29 23:35:21 -06:00
Fletcher Dunn 4c3ffd2286 Update README with note about bandwidth estimation. 2018-06-01 14:24:43 -07:00
Fletcher Dunn 46a9de7b6c Merge branch 'master' into snp-rewrite 2018-06-01 14:02:59 -07:00
Fletcher Dunn eba39bc219 Update README.
Add a bit more detail about the intellectual heritage of the ack vector model.
2018-04-23 10:04:20 -07:00
Arseniy Shestakov 674a3ca5cd README: fix typo 2018-04-20 13:00:22 +07:00
Fletcher Dunn 4d6d10bb4a Update README and wire format description. 2018-04-17 18:29:02 -07:00
Fletcher Dunn c178029f02 Rewrite reliability layer and wire format.
This features a robust ack model inspired by Google QUIC,
which allows for minimal retransmission of reliable data.
It should also allow for the rate calculations to be done
by the sender, but that has been temporarily broken.

The wire framing has also been significantly optimized.
2018-04-17 16:18:25 -07:00
Steven Noonan 7ac0771f69 README: make protobuf build directions a bit more concise, add CMAKE_BUILD_TYPE definition
Signed-off-by: Steven Noonan <steven@valvesoftware.com>
2018-04-04 18:32:38 -07:00
Fletcher Dunn 6dfc36c28c Updated README.
More context about how this code relates to the Steamworks code and what it doesn't do.
2018-04-04 16:03:01 -07:00
Steven Noonan 63dff2933e README: eliminate a couple of "work in progress" bullet points
With the CMake stuff added, these two bullet points are no longer really
relevant.

Signed-off-by: Steven Noonan <steven@valvesoftware.com>
2018-04-04 14:40:36 -07:00
Steven Noonan 2078141235 README: eliminate a copy/paste-o
Mentioned "protobuf" in the OpenSSL section. Seems a redundant word here
anyway, just going to call them "packages" unqualified.

Signed-off-by: Steven Noonan <steven@valvesoftware.com>
2018-04-04 14:38:38 -07:00
Steven Noonan ebeab165bd README.md: add directions for building/installing OpenSSL/Protobuf
Signed-off-by: Steven Noonan <steven@valvesoftware.com>
2018-04-04 14:33:17 -07:00