summaryrefslogtreecommitdiff
path: root/CHANGES.md
Commit message (Collapse)AuthorAgeFilesLines
* Release 0.18.1v0.18.10.18.1Jens Geyer2023-02-231-0/+4
|
* bump versionJens Geyer2023-02-151-0/+15
|
* release branch 0.18.0v0.18.0Jens Geyer2023-02-071-0/+94
|
* CHANGES.md updatedJens Geyer2022-08-301-5/+141
|
* THRIFT-5609: Make TJSONProtocol safe to be used in deserializer poolYuxuan 'fishy' Wang2022-08-061-0/+1
| | | | | | | Client: go Add Reset to TJSONProtocol, and call it in deserializer and serializer to make sure that it's always safe to be used in the pool version.
* THRIFT-5605: Client middleware to extract exceptionsYuxuan 'fishy' Wang2022-08-021-0/+2
| | | | | | | | | Client: go Provide ExtractIDLExceptionClientMiddleware client middleware implementation and ExtractExceptionFromResult to extract exceptions defined in thrift IDL into err return so they are accessible from other client middlewares.
* THRIFT-5583: Add skip_remote arg to go compilerYuxuan 'fishy' Wang2022-05-101-0/+1
| | | | Client: go
* THRIFT-5539: Decouple TDuplicateToProtocol out of TDebugProtocolYuxuan 'fishy' Wang2022-03-151-0/+6
| | | | | | | | | | | | | | | Client: go Currently go's TDebugProtocol does two things: log the read/writes, and duplicate all the reads/writes to another TProtocol. For people who only need the second feature, even if they use NopLogger for the logging part, they still need to pay the price of all the fmt.Sprintf calls used by logging, and on some cases those fmt.Sprintf calls alone can cause significant CPU to be wasted (in one of our services fmt.Sprintf called by TDebugProtocol used ~10% of CPU). Create a dedicated TDuplicateToProtocol to reduce cpu waste, and mark TDebugProtocol.DuplicateTo as deprecated.
* Update changelog for 0.16.0v0.16.00.16.0Jens Geyer2022-02-091-0/+1
|
* Update changelog for 0.16.0Jens Geyer2022-02-041-0/+1
|
* Updated changes.md for 0.16.0Jens Geyer2022-01-271-10/+12
|
* Updated changes.md for 0.16.0Jens Geyer2022-01-211-47/+123
|
* Merge branch '0.15.0' into upstreamJens Geyer2021-09-111-40/+181
|\
| * Branch 0.15.0v0.15.00.15.0Jens Geyer2021-09-041-91/+91
| |
| * THRIFT-5459: Fix breaking issue when adding a new exceptionYuxuan 'fishy' Wang2021-09-031-0/+1
| | | | | | | | | | | | | | | | | | | | Client: go Currently in the compiler generated go code, adding a new exception to an existing endpoint can cause unexpected behaviors when the client isn't updated. Fix the issue. Will be cherry-picked into 0.15.0 after merged.
| * go: Fix things staticcheck complains aboutYuxuan 'fishy' Wang2021-08-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Client: go Staticcheck is the recommended replacement of the frozen and deprecated official golint linter [1]. Fix the things it complained about (or add lint:ignore directive) in: - lib/go/thrift - lib/go/test/tests - tutorial/go/src - test/go/src - compiler generated code The majority of the fixes are in the following categories: - Use of deprecated function (mainly the TConfiguration related ones) - Redundant break in switch cases - Unused and unexported variables/fields/functions Also in the same spirit as fb539ae, remove the error return from NewTSSLSocket as it can never be non-nil. This change will be cherry-picked into 0.15.0 branch after merged. [1]: https://groups.google.com/g/golang-nuts/c/rCP70Aq_tBc
| * THRIFT-5453: Defer DNS from NewTSocketConf to TSocket.OpenYuxuan 'fishy' Wang2021-08-111-0/+3
| | | | | | | | | | | | | | | | | | | | Client: go We used to do DNS lookups in NewTSocketConf, without any timeout checks. Stop doing that and do DNS lookups in TSocket.Open instead, which already checks for ConnectTimeout set in TConfiguration. Also remove the error return from NewTSocketConf.
| * Version 0.15.0Jens Geyer2021-08-031-4/+142
| |
* | THRIFT-5459: Fix breaking issue when adding a new exceptionYuxuan 'fishy' Wang2021-09-031-0/+1
| | | | | | | | | | | | | | | | | | | | Client: go Currently in the compiler generated go code, adding a new exception to an existing endpoint can cause unexpected behaviors when the client isn't updated. Fix the issue. Will be cherry-picked into 0.15.0 after merged.
* | go: Fix things staticcheck complains aboutYuxuan 'fishy' Wang2021-08-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Client: go Staticcheck is the recommended replacement of the frozen and deprecated official golint linter [1]. Fix the things it complained about (or add lint:ignore directive) in: - lib/go/thrift - lib/go/test/tests - tutorial/go/src - test/go/src - compiler generated code The majority of the fixes are in the following categories: - Use of deprecated function (mainly the TConfiguration related ones) - Redundant break in switch cases - Unused and unexported variables/fields/functions Also in the same spirit as fb539ae, remove the error return from NewTSSLSocket as it can never be non-nil. This change will be cherry-picked into 0.15.0 branch after merged. [1]: https://groups.google.com/g/golang-nuts/c/rCP70Aq_tBc
* | THRIFT-5453: Defer DNS from NewTSocketConf to TSocket.OpenYuxuan 'fishy' Wang2021-08-111-0/+2
|/ | | | | | | | | | Client: go We used to do DNS lookups in NewTSocketConf, without any timeout checks. Stop doing that and do DNS lookups in TSocket.Open instead, which already checks for ConnectTimeout set in TConfiguration. Also remove the error return from NewTSocketConf.
* THRIFT-4797: Go import improvementsYuxuan 'fishy' Wang2021-08-011-2/+3
| | | | | | | | | | | | | | | | This change improves two problems in go code imports: 1. Always rename import the thrift package into "thrift", as we allow the user to use a different library to replace the official one from the compiler command line, this makes sure that in compiler generated go code we can always blindly use "thrift.*". 2. We added auto rename import dedup in d9019fc5a4, but in that change for system packages we always use the full import path as the dedup identifier, so system package "database/sql/driver" would not be detected as a conflict against a thrift go namespace of "foo.bar.driver". Use the part after the last "/" in system packages as the dedup identifier instead.
* Version 0.14.2Jens Geyer2021-06-151-0/+11
|
* THRIFT-5404: Allow other types of TTransportException to be timeoutsYuxuan 'fishy' Wang2021-04-281-1/+2
| | | | | | | | | | | | | | | | | | | Client: go Currently we only treat TTransportException with typeId == TIMED_OUT as timeout (return true in Timeout function). When opening a new socket, if we got a connect timeout from net.Dial, we wrap the error as TTransportException with typeId == NOT_OPEN, thus it's no longer treated as a timeout error. Change the error to be directly wrapping the original error (instead of recreate a new error with the same error message), and change tTransportException.Timeout to also return true if the wrapped error is a timeout error. This way we don't have to break anything (if code rely on TTransportException.TypeId being NOT_OPEN in this case, that's still true). While I'm here, also update CHANGES.md from #2359.
* added breaking change notice for THRIFT-5396Jens Geyer2021-04-101-0/+1
|
* THRIFT-5369: Use MaxMessageSize to check container sizesYuxuan 'fishy' Wang2021-04-091-0/+4
| | | | Client: go
* merged 0.14.1 changes into master & added 0.15.0 breaking changes sectionJens Geyer2021-03-271-0/+42
| | | | Patch: Jens Geyer
* Version 0.14.0Jens Geyer2021-02-041-0/+1
|
* Updated CHANGES to reflect Version 0.14.0Jens Geyer2021-02-041-6/+298
|
* THRIFT-4914: Make TClient.Call to return the response metaYuxuan 'fishy' Wang2021-01-221-0/+2
| | | | | | | | | Client: go Make a breaking change so that TClient.Call returns the response meta, currently only contains headers but could be expanded in the future, and make a compiler change to compiler generated clients to take advantage of that and provide access to response metadata to users.
* THRIFT-5326: Expand TException interface in go libraryYuxuan 'fishy' Wang2021-01-171-0/+1
| | | | | | | | | | | | Client: go Add TExceptionType enum type, and add TExceptionType() TExceptionType function to TException definition. Also make TProtocolException unwrap-able.
* THRIFT-5322: Implement TConfiguration in Go libraryYuxuan 'fishy' Wang2021-01-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Client: go Define TConfiguration following the spec, and also move the following configurations scattered around different TTransport/TProtocol into it: - connect and socket timeouts for TSocket and TSSLSocket - tls config for TSSLSocket - max frame size for TFramedTransport - strict read and strict write for TBinaryProtocol - proto id for THeaderTransport Also add TConfiguration support for the following and their factories: - THeaderTransport and THeaderProtocol - TBinaryProtocol - TCompactProtocol - TFramedTransport - TSocket - TSSLSocket Also define TConfigurationSetter interface for easier TConfiguration propagation between wrapped TTransports/TProtocols , and add implementations to the following for propagation (they don't use anything from TConfiguration themselves): - StreamTransport - TBufferedTransport - TDebugProtocol - TJSONProtocol - TSimpleJSONProtocol - TZlibTransport TConfigurationSetter are not implemented by the factories of the "propagation only" TTransports/TProtocols, if they have a factory. For those use cases, TTransportFactoryConf and TProtocolFactoryConf are provided to wrap a factory with the ability to propagate TConfiguration. Also add simple sanity check for TBinaryProtocol and TCompactProtocol's ReadString and ReadBinary functions. Currently it only report error if the header length is larger than MaxMessageSize configured in TConfiguration, for simplicity.
* Deprecated WinXP and Server2003 methodsMario Emmenlauer2020-09-121-0/+1
| | | | | | | Client: cpp Patch: Mario Emmenlauer This closes #2165
* THRIFT-5240: Do connectivity check in Go serverYuxuan 'fishy' Wang2020-07-011-0/+1
| | | | | | | | | | | | Client: go In compiler generated TProcessorFunction implementations, add a goroutine after read the request to do connectivity check on the input transport. If the transport is no longer open, cancel the context object passed into the handler implementation. Also define ErrAbandonRequest error, to help TSimpleServer closing client connections that's already closed on the other end.
* THRIFT-5152: Separate timeout in TSSLSocketYuxuan 'fishy' Wang2020-06-301-0/+1
| | | | | | | | | | | | | | | | | | Client: go We separated timeout in go's TSocket into connect timeout and socket timeout in 81334cd, this change does the same for TSSLSocket to keep them consistent. Also rename the arg in NewTSocketFromConnTimeout from connTimeout to socketTimeout, because in that function we already have a connection, so connect timeout is never used again. The timeout passed into that function is really for socket timeout, not connect timeout. The name of that function actually means "New TSocket From Conn (with) Timeout", not "New TSocket From ConnTimeout" (I guess that's where the original confusion came from). Also add the missing change note for the breaking change.
* THRIFT-5233: Handle I/O timeouts in go libraryYuxuan 'fishy' Wang2020-06-151-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | Client: go As discussed in the JIRA ticket, this commit changes how we handle I/O timeouts in the go library. This is a breaking change that adds context to all Read*, Write*, and Skip functions to TProtocol, along with the compiler change to support that, and also adds context to TStandardClient.Recv, TDeserializer, TStruct, and a few others. Along with the function signature changes, this commit also implements context cancellation check in the following TProtocol's ReadMessageBegin implementations: - TBinaryProtocol - TCompactProtocol - THeaderProtocol In those ReadMessageBegin implementations, if the passed in context object has a deadline attached, it will keep retrying the I/O timeout errors, until the deadline on the context object passed. They won't retry I/O timeout errors if the passed in context does not have a deadline attached (still return on the first error).
* THRIFT-5186: Rewrite address resolution in T{Nonblocking,}ServerSocketmax ulidtko2020-06-091-0/+1
| | | | | | | Client: cpp Patch: Max Ulidtko This closes #2151
* Added breaking change notice for "THRIFT-5138 Swift keywords may be used as ↵Jens Geyer2020-05-201-3/+4
| | | | identifiers if escaped" because it is labelled as such in JIRA
* Update NodeJS to oldest supported version on Ubuntu XenialMario Emmenlauer2020-05-111-0/+1
|
* THRIFT-5164: Small cleanup on example codeYuxuan 'fishy' Wang2020-05-011-0/+1
| | | | | | | | | | | | | | | | | | Client: go Godoc requires at least one other exported type/function to render the whole example file in the example, so export simpleProcessorLoggingMiddleware to make the example of ProcessorMiddleware more helpful. Currently it's rendered in a not very helpful way: https://pkg.go.dev/github.com/apache/thrift@v0.13.1-0.20200430141240-5cffef964a08/lib/go/thrift?tab=doc#example-ProcessorMiddleware Compare to the client middleware example rendering: https://pkg.go.dev/github.com/apache/thrift@v0.13.1-0.20200430141240-5cffef964a08/lib/go/thrift?tab=doc#example-ClientMiddleware While I'm here, also update CHANGES.md to mention ClientMiddleware. [skip ci]
* THRIFT-5164: Add middleware framework for Go serversAndrew Boyle2020-04-271-0/+2
| | | | | | | | | | | | | | | This commit adds a simple middleware framework for Go servers. It provides: * A `ProcessorMiddleware` function interface used to define the actual middleware * `WrapProcessor`, the function that you use to wrap a `TProcessor` in a list of middleware * A helper `WrappedTProcessorFunction` struct to help with developing middleware This is a breaking change for any custom implementations of the `TProcessor` interface, but does not effect the code generated by compiling Thrift files. It adds two functions to the interface that are a part of the generated `TProcessor` code, but were not defined in the interface explicitly.
* fix typos in CHANGES.mdzeshuai0072020-03-101-9/+9
| | | | | | Patch: zeshuai007 This closes #2053
* THRIFT-4982 Remove deprecated C# bindings from the code baseJens Geyer2020-02-281-0/+1
| | | | | | | Client: csharp Patch: Jens Geyer This closes #2027
* THRIFT-5072 Fix data type generation.Homarechan2020-02-061-0/+1
| | | | | | | Client: hs Patch: Homarechan <tikuwakunn@icloud.com> This closes #1974
* THRIFT-5069: Make TDeserializer resource pool friendlyYuxuan 'fishy' Wang2020-01-181-0/+6
| | | | | | | | | | | | | | | | | | | Client: go This change improves performance when using TDeserializer with a resource pool. See https://issues.apache.org/jira/browse/THRIFT-5069 for more context. Also add TSerializerPool and TDeserializerPool, which are thread-safe versions of TSerializer and TDeserializer. Benchmark result shows that they are both faster and use less memory than the plain version: $ go test -bench Serializer -benchmem goos: darwin goarch: amd64 BenchmarkSerializer/baseline-8 577558 1930 ns/op 512 B/op 6 allocs/op BenchmarkSerializer/plain-8 452712 2638 ns/op 2976 B/op 16 allocs/op BenchmarkSerializer/pool-8 591698 2032 ns/op 512 B/op 6 allocs/op PASS
* THRIFT-4990 Upgrade to .NET Core 3.1 (LTS)Jens Geyer2019-12-071-1/+1
| | | | | | | Client: netstd Patch: Jens Geyer This closes #1961
* THRIFT-5022: Fix TIOStreamTransport.isOpen for input or output only useAndy Seaborne2019-11-251-0/+3
| | | | | Client: java This closes #1942.
* THRIFT-5006 Implement DEFAULT_MAX_LENGTH at TFramedTransportJens Geyer2019-11-131-1/+1
| | | | | Client: Delphi Patch: Jens Geyer
* THRIFT-4990 Switch to .NET core 3.0Jens Geyer2019-11-021-0/+8
| | | | | | | Client: netstsd Patch: Jens Geyer This closes #1909
* Version 0.13.0Jens Geyer2019-10-171-0/+271
|