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

Integrate V1.0.0 changes into develop #303

Merged
merged 16 commits into from
Aug 21, 2023
Merged

Integrate V1.0.0 changes into develop #303

merged 16 commits into from
Aug 21, 2023

Conversation

Nashatyrev and others added 16 commits May 17, 2023 16:28
* Upgrade Gradle version to 8.0
* Refactor Android example
* Add 2 Android gradle plugins (without applying) to the root build (haven't managed to isolate them in Android example module)
* Add android.useAndroidX property to the root gradle.properties (for some reason defining this property in the Android submodule doesn't work)
* Add libp2p.gradle.custom per project property which indicates whether common gradle code for submodules should be skipped (set it up for Adnroid example)
* Move Maven repositories definitions to settings.gradle
* In the settings.gradle detect if Android SDK is installed and conditionally include :examples:android-chatter module
* Add Setup Android SDK GitHub action
* Get rid of Apache commons-codec dependency
* Replace log4j-api entries and dependencies with corresponding slf4j analogs
* Add log4j-slf4j2-impl runtime dependencies for examples, tests and simulator module
* add multiaddr dependency from jitpack
* Support webtransport multiaddrs
* Implement dns multiaddr
* Support quic-v1 and wss multiaddr
---------
Co-authored-by: ian <ianopolous@protonmail.com>
* Initial yamux implementation
* Implement per stream write buffers and per connection max write buffer size limit.
* Make MuxHandler abstract. Move Mplex specific members to MplexHandler. Derive YamuxHandler from it
* Refactor MuxHandler tests
* Refactor MplexFrame, remove obsolete MuxFrame
* Flush buffered writes in yamux on local disconnect
---------
Co-authored-by: Anton Nashatyrev <anton.nashatyrev@gmail.com>
* Refactor: move test utility classes to testFixtures module
* Fix regression: MplexFrame should implement ReferenceCounted to release the underlying ByteBuf after encoding with MplexFrameCodec
* Add unit test reproducing the issue
* Refactor MuxHandlerAbstractTest: add ability to handle outbound messages
* Control and check ByteBuf allocations and releases
* Add more testcases and assertions
* [Generic] (buffer leak) release message buffer if inbound frame have non-existing streamId: 71c68c4
* [Yamux] Process RST (Reset) flag: 42e40f6
* [Generic] Writing to a stream which was prior closed should be prohibited: d3c4580
* [Generic] Receiving a data on a steam which was remotely closed should result in exception (recoverable, i.e. connection should not be terminated): 8974317
* [Yamux] switch the logic of onLocalDisconnect() and onLocalClose() methods. onLocalDisconnect() should leave the stream open for inbound data: 820c252
* [Yamux] need to clean up stream entries on any kind of stream closure (local Reset, remote Reset, local + remote Close): 66ef36b
* Convert RemoteWriteClosed to singleton
* Add early muxer negotiation support 
* Implement TLS security protocol
* Remove the insecure Secio from builders so it can't be accidentally included
* Add TLS tests
* Bouncycastle ECDSA certs in TLS were broken
* Change unit test to cover this

Co-authored-by: Anton Nashatyrev <Nashatyrev@users.noreply.github.com>
* yamux: Don't error on window update for closed stream
* stream closes are often window updates with size 0
* Make sure window is initialised before calling onRemoteOpen
* Add the unit test reproducing issues with Yamux
---------

Co-authored-by: Anton Nashatyrev <anton.nashatyrev@gmail.com>
* Fix yamux handling of writes bigger than the window size
* Fix inefficient window size handling
* Release delayed yamux send buffer once sent. 
* Add Unit test
---------
Co-authored-by: Anton Nashatyrev <anton.nashatyrev@gmail.com>
* Add Yamux specific unit tests
* Minor Yamux refactorings
* Add component status table
* Remove outdated roadmap and the old list of components
* Add 'Notable Users' section
* Add 'Android support' module
* Add Host.getProtocols()
* Fix Host.addProtocolHandler (There was in internal CopyOnWriteArrayList for protocols in the muxer, so it didn't see newly added protocols)
* Make a thread-safe shared MutableList for Host and Muxers
---------

Co-authored-by: Anton Nashatyrev <anton.nashatyrev@gmail.com>
@StefanBratanov
Copy link
Collaborator

LGTM

@Nashatyrev Nashatyrev merged commit 1a5f08d into develop Aug 21, 2023
4 checks passed
This was referenced Aug 21, 2023
@StefanBratanov StefanBratanov deleted the v1.0.0 branch May 23, 2024 09:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants