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.Extensionshas disappeared;ThriftProxyis now available for both .NET Core and the full .NET Framework, inThriftSharp.ThriftServiceImplementationhas been removed. UseThriftProxyinstead.- 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 takeoffsetandcountin 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
ThriftCommunicationcan now be used with custom protocols and transports; theThriftSharp.Models,ThriftSharp.ProtocolsandThriftSharp.Transportnamespaces 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> IThriftValueConverteris nowIThriftValueConverter<TFrom, TTo>, andThriftValueConverter<TFrom, TTo>was removedThrift{Field, Method, Throws, Parameter}Attributenow have aConverteroptional parameter, andThriftConverterAttributewas removedThriftFieldAttributenow has aDefaultValueoptional parameter, andThriftDefaultValueAttributewas removedIsOneWayis now an optional parameter onThriftMethodAttributerather 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'sBadSequenceIDhas been renamed toBadSequenceIdto 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.