Releases: SolalPirelli/ThriftSharp
Version 6.0.1
- .NET Standard 2.0 support
- Added ThriftSerializer, to easily de/serialize and object to bytes using the Thrift binary protocol.
- Added ThriftMemoryTransport, a simple in-memory transport.
- Renamed HttpThriftTransport to ThriftHttpTransport for consistency.
(6.0.0 is a hidden release, I forgot to include the rd.xml file)
Version 5.0.4
Includes the rd.xml file necessary for .NET Native to work properly.
(5.0.1 through 5.0.3 were failed attempts, and are unlisted from NuGet)
Version 5.0.0
.NET Core support.
Breaking changes:
ThriftSharp.Extensions
has disappeared;ThriftProxy
is now available for both .NET Core and the full .NET Framework, inThriftSharp
.ThriftServiceImplementation
has been removed. UseThriftProxy
instead.- Changes in the constructor of
ThriftHttpClient
. (should not affect most consumers)
Fixes:
- Workarounds for issues in UWP's expression interpreter.
Version 4.0.0
Workaround for a bug in UWP's System.Linq.Expressions
interpreter, and performance improvements.
Breaking changes:
IThriftTransport
's reading and writing methods now takeoffset
andcount
in addition to an array.
Version 3.0.1
Hotfix for a bug on frameworks that restrict access to internal framework types, such as WP 8.1.
The cause was an Expression.Constant
taking a Type
argument. To determine its type, the framework calls GetType()
on it. Since Type
is abstract, GetType
returned typeof( System.RuntimeType )
, the implementing type, which is internal. Thus the expression attempted to access an internal framework type, which crashed on platforms that do not allow it.
Version 3.0.0
General
- Vastly improved serialization and deserialization performance
- Improved error handling when parsing attributes
ThriftCommunication
can now be used with custom protocols and transports; theThriftSharp.Models
,ThriftSharp.Protocols
andThriftSharp.Transport
namespaces are now public.- Minor bugfixes and improvements
Breaking changes
- Support for Windows Phone Silverlight was dropped
- Thrift lists are now represented by
IList<T>
rather thanICollection<T>
IThriftValueConverter
is nowIThriftValueConverter<TFrom, TTo>
, andThriftValueConverter<TFrom, TTo>
was removedThrift{Field, Method, Throws, Parameter}Attribute
now have aConverter
optional parameter, andThriftConverterAttribute
was removedThriftFieldAttribute
now has aDefaultValue
optional parameter, andThriftDefaultValueAttribute
was removedIsOneWay
is now an optional parameter onThriftMethodAttribute
rather than on its constructor- The built-in date converters now return UTC dates rather than local ones
Internals
- C# 6 is now used internally
- Benchmarks are now done with BenchmarkDotNet
- Unit tests use xUnit.net rather than MSTest
- 100% code coverage in unit tests
Version 2.3.1
Fixed a memory leak; references to objects returned from a Thrift call were being kept through the struct cache.
Version 2.3
- The HTTP transport can now take an
IReadOnlyDictionary<string, string>
for its headers, rather than a writeableDictionary<string, string>
. ThriftProtocolExceptionType
'sBadSequenceID
has been renamed toBadSequenceId
to follow .NET conventions.- Minor internal improvements.
Version 2.2
Added converters for the DateTimeOffset
class, which should replace DateTime
in most use cases.
Version 2.1.1
Bugfix release. Collection types containing structs weren't read properly.