Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Logical channels + streaming encoders #66

Open
wants to merge 138 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
138 commits
Select commit Hold shift + click to select a range
12b59b1
it’s always good if you commit the changes
sgwilym Nov 11, 2024
a7c3018
Implement logical channel client-side logic
AljoschaMeyer Nov 11, 2024
f7a2af2
Add some TODOs for later
AljoschaMeyer Nov 12, 2024
b84b24d
Complete client-side logic of logical channels
AljoschaMeyer Nov 13, 2024
4f467dc
Work
AljoschaMeyer Nov 20, 2024
a1c5bf3
Merge channels into logical_channels
sgwilym Nov 20, 2024
6e0843b
server sketching
sgwilym Nov 20, 2024
e9e1c7b
Working on the server!
sgwilym Nov 21, 2024
c8658a7
Tie up loose ends from today's session
AljoschaMeyer Nov 21, 2024
3998e86
more server work
sgwilym Nov 22, 2024
4302e15
Extend mpmc channel to allow triggering an error
AljoschaMeyer Nov 22, 2024
6b4a89d
Restructure sync_with_peer to allow for dependencies between steps
AljoschaMeyer Nov 24, 2024
dbbf80f
REfactor things, not complete yet
AljoschaMeyer Nov 25, 2024
20fb2f9
Implement RwLock
AljoschaMeyer Nov 26, 2024
2ee7168
Add a mutex, original work do not steal
sgwilym Nov 26, 2024
1e261a2
More elision
sgwilym Nov 26, 2024
5bc4ad5
Migrate from NbMutex to WB Mutex
sgwilym Nov 26, 2024
1bb1201
Add SharedDecoder
sgwilym Nov 26, 2024
d93d43a
Send ReveakCommitment message
AljoschaMeyer Nov 26, 2024
77c3567
Update CommitmentReveal encoding
AljoschaMeyer Nov 26, 2024
bd408fd
Fix exports of duplicate names
AljoschaMeyer Nov 26, 2024
e3030a7
Add OnceCell and use it for task dependencies in sync_with_peer
AljoschaMeyer Nov 26, 2024
de9e599
Cosmetics
AljoschaMeyer Nov 26, 2024
77f216d
Add TakeCell to async utils
AljoschaMeyer Nov 26, 2024
eed37f4
Add rough sketch of lcmux architecture
AljoschaMeyer Nov 27, 2024
6100536
Merge async_utils into logical_channels
sgwilym Nov 27, 2024
6f09be2
Work
AljoschaMeyer Nov 27, 2024
8ff0846
Mostly switch to ufotofu 0.5.0
AljoschaMeyer Nov 28, 2024
916b7bf
Sketch absolute ufotofu_codec traits
AljoschaMeyer Nov 29, 2024
5247749
Add default method implementations to ufotofu_codec
AljoschaMeyer Dec 1, 2024
57b8fac
Add relativity to ufotofu_codec
AljoschaMeyer Dec 1, 2024
5b11fdb
Add ufotofu_codec_endian crate
AljoschaMeyer Dec 1, 2024
d740aef
Wip compact_u64
AljoschaMeyer Dec 1, 2024
ba90e1a
Refactor codec apis
AljoschaMeyer Dec 2, 2024
29ee69d
Delete old code
AljoschaMeyer Dec 2, 2024
eab3ae2
Remove unused imports
AljoschaMeyer Dec 2, 2024
284d2eb
Adjust ufotofu_codec_endian
AljoschaMeyer Dec 2, 2024
ef5fd56
CompatcU64 make TagWidth opaque
AljoschaMeyer Dec 2, 2024
59029ba
Finish implementing CompactU64
AljoschaMeyer Dec 2, 2024
7cf4ff3
Tiny doc fix
AljoschaMeyer Dec 3, 2024
57a9256
Add Arbitrary to endian int wrappers
AljoschaMeyer Dec 3, 2024
0abf054
Get fuzzing to work with proptest stuff
AljoschaMeyer Dec 3, 2024
62b5326
Write macros for fuzz testing
AljoschaMeyer Dec 3, 2024
e31efeb
wip updating path
sgwilym Dec 3, 2024
9c2a1c9
Add ufotofu_codec proptest macros
AljoschaMeyer Dec 3, 2024
af00ffc
Path decoding completed. Kinda.
sgwilym Dec 4, 2024
1def268
Merge logical_channels into update-traits
sgwilym Dec 4, 2024
b6a3e24
Migrate path fuzz tests
sgwilym Dec 4, 2024
5c120e0
Get a running fuzz test
AljoschaMeyer Dec 5, 2024
3de06e5
Revert back to encoding and decoding relative to distinct types
AljoschaMeyer Dec 5, 2024
69d11de
Update everything to ufotofu 0.6.0
AljoschaMeyer Dec 6, 2024
71bd4ce
Update test names
sgwilym Dec 6, 2024
ae23d78
Path rel path trait + test stubs
sgwilym Dec 6, 2024
888f22b
Implement absolute codec traits for CompactU64
AljoschaMeyer Dec 6, 2024
89586eb
Absolute entry encoding
sgwilym Dec 6, 2024
030d2ee
yep
sgwilym Dec 6, 2024
b7f33ef
Document compact_u64
AljoschaMeyer Dec 6, 2024
c82ce40
Start breaking up relative encodings into smaller bits
sgwilym Dec 6, 2024
fa4917f
Document uftofu_codec_endian
AljoschaMeyer Dec 6, 2024
e60cef7
Add fuzz tests for ufotofu_codec_endian
AljoschaMeyer Dec 6, 2024
3144ab0
Migrate entry <> namespaced area encoding
sgwilym Dec 6, 2024
3826427
Plish docs
AljoschaMeyer Dec 6, 2024
1ce5de8
Complete renaming of some proptest functions
AljoschaMeyer Dec 6, 2024
8deb35d
Migrate entry <> namespaced range3d
sgwilym Dec 6, 2024
ad9531a
Prep area <> area encoding traits
sgwilym Dec 6, 2024
930bf2c
Prep range3d <> range3d encodings
sgwilym Dec 6, 2024
f094c72
Add absolute codec adapters
AljoschaMeyer Dec 7, 2024
d6e9672
Implement and test encoders and decoders
AljoschaMeyer Dec 7, 2024
1314e4a
Format and polish
AljoschaMeyer Dec 7, 2024
218aacb
Merge polish into update-traits endeavour
AljoschaMeyer Dec 7, 2024
dfa9d87
Make path encoding compile
AljoschaMeyer Dec 7, 2024
89abe1e
Slightly refactor path encoding
AljoschaMeyer Dec 7, 2024
62e37dc
Refactor Path and its codec
AljoschaMeyer Dec 9, 2024
f5f6244
Not all 1am code is good code
AljoschaMeyer Dec 9, 2024
6b350a0
Use Deref instead of Borrow for relative encoder/decoder
AljoschaMeyer Dec 9, 2024
edd29d2
Move u64_to_usize to ufotofu_codec, add analogous functions for other…
AljoschaMeyer Dec 9, 2024
6c78584
Add usize conversion functions to ufotofu_codec
AljoschaMeyer Dec 9, 2024
c281c7e
encountered bug with path rel path fuzz
sgwilym Dec 9, 2024
af596f2
Sketch shared codec encoder and decoder structs
AljoschaMeyer Dec 9, 2024
f399171
Fix path Representation::total_length
AljoschaMeyer Dec 9, 2024
3d0d197
Ignore the rust code examples in the docs that are not doc tests
AljoschaMeyer Dec 9, 2024
f2de381
Polish docs
AljoschaMeyer Dec 9, 2024
9081b27
mini fix
sgwilym Dec 9, 2024
1a0fe4a
Refactor relative codecs
AljoschaMeyer Dec 9, 2024
cbf0dfb
Use Option::is_ok some more
AljoschaMeyer Dec 9, 2024
37e8757
Fix canonicity oversight
AljoschaMeyer Dec 9, 2024
5743fc6
Create and use PathBuilder::new_from_prefix, not optimised yet
AljoschaMeyer Dec 9, 2024
c80d044
Wow
AljoschaMeyer Dec 9, 2024
97c2ea0
Another bugfix
AljoschaMeyer Dec 10, 2024
76b07d3
Typo fix in debug output
AljoschaMeyer Dec 10, 2024
5f92fe3
Fix a bug!
AljoschaMeyer Dec 10, 2024
269cee3
Implement some silly optimisations
AljoschaMeyer Dec 10, 2024
109d4a2
Placeholder params, abs entry encoding, entry rel entry encoding
sgwilym Dec 10, 2024
6db0d9c
Stub out meadowcap
sgwilym Dec 10, 2024
5289f5c
Set up an lcmux crate, migrate old lcmux code into it
AljoschaMeyer Dec 10, 2024
5fc2298
LCMUX: Basic integration of server logic into session
AljoschaMeyer Dec 10, 2024
a3a7732
Handle all incoming lcmux fragments
AljoschaMeyer Dec 11, 2024
0026644
Merge pull request #62 from earthstar-project/silly-optimisations-pat…
sgwilym Dec 11, 2024
75ad2ae
Add missing Decodable trait for McSubspaceCapability
sgwilym Dec 11, 2024
8603b40
Migrate entry <> area fuzz tests
sgwilym Dec 11, 2024
57c1e0b
Migrate entry <> range3d fuzz tests
sgwilym Dec 11, 2024
4c05d88
Migrate area <> area encoding fuzz tests
sgwilym Dec 11, 2024
c3ce42e
Migrate range3d rel range3d proptests
sgwilym Dec 11, 2024
6c2e9d1
Update SillySigs
sgwilym Dec 11, 2024
6df5372
Migrate McCapability rel Area fuzz tests
sgwilym Dec 11, 2024
926b8af
Remove unused ControlProducer field
AljoschaMeyer Dec 11, 2024
dd5e297
Migrate McSubspaceCapability absolute encoding fuzz tests
sgwilym Dec 11, 2024
b98dfdc
Merge pull request #64 from earthstar-project/housekeeping
sgwilym Dec 11, 2024
97a721a
Implement sending of all bookkeeping frames (granting guarantees etc)
AljoschaMeyer Dec 11, 2024
fee2f54
Implement sending of control messages
AljoschaMeyer Dec 11, 2024
b17d7a0
My First LCMUX Encodable implementations
sgwilym Dec 11, 2024
34349c5
Aside from a few todo macros this is basically done?
AljoschaMeyer Dec 11, 2024
693a964
Complte lcmux implementation
AljoschaMeyer Dec 11, 2024
70a53ae
Add Encodable LCMUX messages and Decodable IncomingFragmentHeader
sgwilym Dec 12, 2024
ecbef70
Clean up wgps crate
AljoschaMeyer Dec 12, 2024
9af7cdd
Use lcmux in the wgps
AljoschaMeyer Dec 12, 2024
58d7343
Merge lcmux-message-codec into lcmux
sgwilym Dec 13, 2024
7a4727e
Work
AljoschaMeyer Dec 18, 2024
32b7acc
Finish FairlyUnsafeCell implementation
AljoschaMeyer Dec 20, 2024
d495a9b
Some small fixes Aljoscha asked for
sgwilym Jan 2, 2025
234e8bb
Temp commit
AljoschaMeyer Jan 2, 2025
87637d7
Merge pull request #67 from earthstar-project/lil-fixes
sgwilym Jan 2, 2025
0e40398
Fix oversight
AljoschaMeyer Jan 2, 2025
76ca0a7
Test and fix spsc
AljoschaMeyer Jan 2, 2025
4db6cee
Appease clippy
AljoschaMeyer Jan 2, 2025
be96334
Merge logical_channels into better_spsc
sgwilym Jan 3, 2025
14bb9b2
Merge pull request #68 from earthstar-project/better_spsc
AljoschaMeyer Jan 4, 2025
c1d074c
Rename wb_async_utils ufotofu feature
AljoschaMeyer Jan 4, 2025
25ba591
Working SharedProducer
AljoschaMeyer Jan 5, 2025
28e3d13
Add doc tests to mutex
AljoschaMeyer Jan 5, 2025
541d0d3
Mutex: use FairlyUnsafeCell instead of UnsafeCell
AljoschaMeyer Jan 5, 2025
33643ba
Add TakeCell doc tests
AljoschaMeyer Jan 5, 2025
7cfa183
Use FairlyUnsafeCell for TakeCell
AljoschaMeyer Jan 5, 2025
845cc40
Add doctests for RwLock
AljoschaMeyer Jan 5, 2025
3de9d50
Use FairlyUnsafeCell in RwLock
AljoschaMeyer Jan 5, 2025
d794915
Add doctests for OnceCell
AljoschaMeyer Jan 5, 2025
8815c2d
Use FairlyUnsafeCell for OnceCell
AljoschaMeyer Jan 5, 2025
9337925
Merge pull request #69 from earthstar-project/wb_cleanup
AljoschaMeyer Jan 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
126 changes: 98 additions & 28 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 14 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,19 @@
[workspace]

members = ["data-model", "earthstar", "encoding", "fuzz", "meadowcap", "wgps"]
members = [
"compact_u64",
"data-model",
"earthstar",
"encoding",
"fairly_unsafe_cell",
"fuzz",
"lcmux",
"meadowcap",
"ufotofu_codec",
"ufotofu_codec_endian",
"wgps",
"wb_async_utils",
]
resolver = "2"

[workspace.lints.clippy]
Expand Down
28 changes: 28 additions & 0 deletions compact_u64/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
[package]
name = "compact_u64"
version = "0.1.0"
edition = "2021"

[features]

default = ["std"]

dev = ["std", "arbitrary"]

# Provide functionality that relies on the std library. Enabled by default.
std = []

[dependencies]
ufotofu = "0.6.0"
either = "1.10.0"
ufotofu_codec = { path = "../ufotofu_codec", version = "0.1.0" }
ufotofu_codec_endian = { path = "../ufotofu_codec_endian", version = "0.1.0" }
arbitrary = { version = "1.0.2", optional = true }

[lints]
workspace = true

# docs.rs-specific configuration
[package.metadata.docs.rs]
# document all features
all-features = true
3 changes: 3 additions & 0 deletions compact_u64/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# UFOTOFU Codec Endian

Endian-aware fixed-width integer codecs for `ufotofu_codec`.
Loading
Loading