Skip to content

Releases: needle-mirror/com.unity.transport

0.8.0-preview.8

21 May 20:08
Compare
Choose a tag to compare
0.8.0-preview.8 Pre-release
Pre-release

[0.8.0] - 2021-03-23

New features

  • Added overloads of PopEvent and PopEventForConnection which return the pipeline used as an out parameter.

Changes

Fixes

  • Fixed some compatility issues with tiny.
  • Fixed a crash when sending messages slightly less than one MTU using the fragmentation pipeline.
  • Fixed a bug causing NetworkDriver.RemoteEndPoint to return an invalid value when using the default network interface.

Upgrade guide

[0.7.0] - 2021-02-05

New features

  • Added DataStreamWriter.WriteRawbits and DataStreamWriter.ReadRawBits for reading and writing raw bits from a data stream.

Changes

  • Optimized the NetworkCompressionModel to find buckets in constant time.
  • Changed the error behavior of DataStreamReader to be consistent between the editor and players.

Fixes

  • Fixed a crash when receiving a packet with an invalid pipeline identifier

Upgrade guide

[0.6.0] - 2020-11-26

New features

  • An error handling pass has been made and Error.StatusCode have been added to indicate more specific errors.
  • Error.DisconnectReason has been added, so when NetworkDriver.PopEvent returns a NetworkEvent.Type.Disconnect the reader returned contains 1 byte of data indicating the reason.

Changes

  • The function signature for NetworkDriver.BeginSend has changed. It now returns a int value indicating if the function succeeded or not and the DataStreamWriter now instead is returned as a out parameter.
  • The function signature for INetworkInterface.Initialize has changed. It now requires you to return a int value indicating if the function succeeded or not.
  • The function signature for INetworkInterface.CreateInterfaceEndPoint has changed. It now requires you to return a int value indicating if the function succeeded or not, and NetworkInterfaceEndPoint is now returned as a out parameter.

Fixes

  • Fixed a potential crash when receiving a malformated packet.
  • Fixed an issue where the DataStream could sometimes fail writing packet uints before the buffer was full.

Upgrade guide

  • NetworkDriver.BeginSend now returns a int indicating a Error.StatusCode, and the DataStreamWriter is passed as an out parameter.

0.6.0-preview.7

22 Jan 17:20
Compare
Choose a tag to compare
0.6.0-preview.7 Pre-release
Pre-release

[0.6.0] - 2020-11-26

New features

  • An error handling pass has been made and Error.StatusCode have been added to indicate more specific errors.
  • Error.DisconnectReason has been added, so when NetworkDriver.PopEvent returns a NetworkEvent.Type.Disconnect the reader returned contains 1 byte of data indicating the reason.

Changes

  • The function signature for NetworkDriver.BeginSend has changed. It now returns a int value indicating if the function succeeded or not and the DataStreamWriter now instead is returned as a out parameter.
  • The function signature for INetworkInterface.Initialize has changed. It now requires you to return a int value indicating if the function succeeded or not.
  • The function signature for INetworkInterface.CreateInterfaceEndPoint has changed. It now requires you to return a int value indicating if the function succeeded or not, and NetworkInterfaceEndPoint is now returned as a out parameter.

Fixes

  • Fixed a potential crash when receiving a malformated packet.
  • Fixed an issue where the DataStream could sometimes fail writing packet uints before the buffer was full.

Upgrade guide

  • NetworkDriver.BeginSend now returns a int indicating a Error.StatusCode, and the DataStreamWriter is passed as an out parameter.

[0.5.0] - 2020-10-01

New features

Changes

Fixes

  • Fixed display of ipv6 addresses as strings

Upgrade guide

0.5.0-preview.5

29 Oct 23:37
Compare
Choose a tag to compare
0.5.0-preview.5 Pre-release
Pre-release

[0.5.0] - 2020-10-01

New features

Changes

Fixes

  • Fixed display of ipv6 addresses as strings

Upgrade guide

[0.4.1] - 2020-09-10

New features

  • Added NetworkDriver.GetEventQueueSizeForConnection which allows you to check how many pending events a connection has.

Changes

Fixes

  • Fixed a compatibility isue with DOTS Runetime.

Upgrade guide

0.4.1-preview.1

17 Sep 01:10
Compare
Choose a tag to compare
0.4.1-preview.1 Pre-release
Pre-release

[0.4.1] - 2020-09-10

New features

  • Added NetworkDriver.GetEventQueueSizeForConnection which allows you to check how many pending events a connection has.

Changes

Fixes

  • Fixed a compatibility isue with DOTS Runetime.

Upgrade guide

0.4.0-preview.3

21 Aug 14:11
Compare
Choose a tag to compare
0.4.0-preview.3 Pre-release
Pre-release

[0.4.0-preview.3] - 2020-08-21

New features

  • Added a new fragmentation pipeline which allows you to send messages larger than one MTU. If the FragmentationPipelineStage is part of the pipeline you are trying to send with the NetworkDriver will allow a requiredPayloadSize larger than one MTU to be specified and split the message into multiple packages.

Changes

  • The methods to read and write strings in the DataStreamReader/DataStreamWriter have been changed to use FixedString<N> instead of NativeString<N>. The name of the methods have also changed from ReadString to ReadFixedString64 - and similar changes for write and the packed version of the calls. The calls support FixedString32, FixedString64, FixedString128, FixedString512 and FixedString4096.
  • Minimum required unity version has changed to 2020.1.2.

Fixes

Upgrade guide

The data stream methods for reading and writing strings have changed, they now take FixedString64 instead of NativeString64 and the names have changed as follows: DataStreamReader.ReadString -> DataStreamReader.ReadFixedString64, DataStreamReader.ReadPackedStringDelta -> DataStreamReader.ReadPackedFixedString64Delta, DataStreamWriter.WriteString -> DataStreamWriter.WriteFixedString64, DataStreamWriter.WritePackedStringDelta -> DataStreamWriter.WritePackedFixedString64Delta.
The transport now requires Unity 2020.1.2.

0.3.1-preview.4

05 Jun 08:41
Compare
Choose a tag to compare
0.3.1-preview.4 Pre-release
Pre-release

[0.3.1-preview.4] - 2020-06-05

New features

Changes

  • Added a new requiredPayloadSize parameter to BeginSend. The required size cannot be larger than NetworkParameterConstants.MTU.
  • Added errorcode parameter to a network_set_nonblocking, network_set_send_buffer_size and network_set_receive_buffer_size in NativeBindings.
  • Additional APIs added to NativeBindings: network_set_blocking, network_get_send_buffer_size, network_get_receive_buffer_size, network_set_receive_timeout, network_set_send_timeout.
  • Implemented NetworkEndPoint.AddressAsString.

Fixes

  • Fixed an issue in the reliable pipeline which would cause it to not recover if one end did not receive packages for a while.
  • Fixed NetworkInterfaceEndPoint and NetworkEndPoint GetHashCode implementation.
  • Fixed invalid use of strings when specifying the size of socket buffers in the native bindings

Upgrade guide

0.2.4-preview.0

26 May 09:04
Compare
Choose a tag to compare
0.2.4-preview.0 Pre-release
Pre-release

[0.2.4-preview.0] - 2020-02-28

Fixes

  • Fixed an issue in the reliable pipeline which would cause it to not recover if one end did not receive packages for a while.

0.3.0-preview.6

26 May 09:04
Compare
Choose a tag to compare
0.3.0-preview.6 Pre-release
Pre-release

[0.3.0-preview.6] - 2020-02-24

New features

Changes

  • Pipelines are now registered by calling NetworkPipelineStageCollection.RegisterPipelineStage before creating a NetworkDriver. The built-in pipelines do not require explicit registration. The interface for implementing pipelines has been changed to support this.
  • NetworkDriver is no longer a generic type. You pass it an interface when creating the NetworkDriver, which means you can switch between backends without modifying all usage of the driver. There is a new NetworkDriver.Create which creates a driver with the default NetworkInterface. It is also possible to create a new NetworkDriver by passing a NetworkInterface instance as the first argument.
  • NetworkDriver.Send is replaced by BeginSend and EndSend. This allows us to do less data copying when sending messages. The interface for implementing new netowrk interfaces has been changed to support this.
  • DataStreamReader and DataStreamWriter no longer owns any memory. They are just reading/writing the data of a NativeArray<byte>.
  • DataStreamWriter has explicit types for all Write methods.
  • DataStreamReader.Context has been removed.
  • Error handling for DataStreamWriter has been improved, on failure it returns false and sets DataStreamWriter.HasFailedWrites to true. DataStreamReader returns a default value and sets DataStreamReader.HasFailedReads to true. DataStreamReader will throw an excpetion instead of returning a default value in the editor.
  • IPCManager is no longer public, it is still possible to create a NetworkDriver with a IPCNetworkInterface.
  • Added NetworkDriver.ScheduleFlushSend which must be called to guarantee that messages are send before next call to NetworkDriver.ScheduleUpdate.
  • Added NetworkDriver.LastUpdateTime to get the update time the NetworkDriver used for the most recent update.
  • Removed the IPC address family, use a IPv4 localhost address instead.

Fixes

  • Fixed a memory overflow in the reliability pipeline.
  • Made the soaker report locale independent.

Upgrade guide

Creation and type of NetworkDriver has changed, use NetworkDriver.Create or pass an instance of a NetworkInterface to the NetworkDriver constructor.

NetworkDriver.Send has been replaced by a pair of NetworkDriver.BeginSend and NetworkDriver.EndSend. Calling BeginSend will return a DataStreamWriter to which you write the data. The DataStreamWriter is then passed to EndSend.

All write calls in DataStreamWriter need an explicit type, for example Write(0) should be replaced by WriteInt(0).

DataStreamWriter no longer shares current position between copies, if you call a method which writes you must pass it by ref for the modifications to apply.

DataStreamWriter no longer returns a DeferedWriter, you need to take a copy of the writer at the point you want to make modifications and use the copy to overwrite data later.

DataStreamWriter is no longer disposable. If you use the allocating constructor you need to use Allocator.Temp, if you pass a NativeArray<byte> to the constructor the NativeArray owns the memory.

DataStreamReader.Context no longer exists, you need to pass the DataStreamReader itself by ref if you read in a different function.

The interface for network pipelines has been changed.

The interface for network interfaces has been changed.

0.2.3-preview.0

26 May 09:04
Compare
Choose a tag to compare
0.2.3-preview.0 Pre-release
Pre-release

[0.2.3-preview.0] - 2019-12-12

New features

Changes

  • Added reading and write methods for NativeString64 to DataStream.

Fixes

Upgrade guide

0.2.2-preview.2

26 May 09:03
Compare
Choose a tag to compare
0.2.2-preview.2 Pre-release
Pre-release

[0.2.2-preview.2] - 2019-12-05

New features

Changes

  • Added a stress test for parallel sending of data.
  • Upgraded collections to 0.3.0.

Fixes

  • Fixed a race condition in IPCNetworkInterface.
  • Changed NetworkEventQueue to use UnsafeList to get some type safety.
  • Fixed an out-of-bounds access in the reliable sequenced pipeline.
  • Fixed spelling and broken links in the documentation.

Upgrade guide