scrooge

A Thrift parser/generator

APACHE-2.0 License

Stars
789
Committers
221

Bot releases are hidden (Show)

scrooge - Scrooge 22.12.0 Latest Release

Published by finaglehelper almost 2 years ago

22.12.0

New Features

  • scrooge-core: c.t.scrooge.StructBuilder.forStructClass API for retrieving
    the StructBuilder for a struct or union class that helps in building ThriftStruct. PHAB_ID=D934277

Breaking API Changes

  • scrooge-generator: c.t.scrooge.ast.Field.hasValidationAnnotation field can no longer
    be set in the constructor, but it is now a property derived from the value in the
    Field.fieldAnnotations field; if any annotations have a name starting with validation.
    it is set to true, otherwise it is false. PHAB_ID=D912077

Runtime Behavior Changes

  • scrooge-generator: Move ServerValidationMixin trait to be in the companion object of the service, this is to
    avoid ambiguities when calling the trait from inherited services. PHAB_ID=D943975
  • scrooge-thrift-validation: custom annotations in ThriftValidator must have a
    name starting with validation. PHAB_ID=D912077
  • scrooge-generator: Checks for reference equality in Scala structs before iterating over the fields, this is to
    reduce the cost of equals checks on large structs (many fields or deeply nested fields). PHAB_ID=D950010
  • scrooge: Use the util-mock for testing which depends on the 3.12.4 "org.mockito", remove the
    "org.jmock" dependencies. 967d7ddf
  • scrooge: c.t.scrooge.StructBuilder now accepts null values for non-primitive default-required fields. e35e1842
scrooge - Scrooge 22.7.0

Published by finaglehelper about 2 years ago

22.7.0

New Features

  • scrooge-generator: Introduce a AnnotatedFieldType to abstract type annotations from
    FieldType definitions. Currently used to propagate thrift annotations inside of
    collection types. 59e91e64 2fa68351
  • scrooge-core: c.t.scrooge.ThriftUnion.fieldInfoForUnionClass API for retrieving
    ThriftStructFieldInfo for a ThriftUnion member class without having to instantiate
    it. 19809c22
  • scrooge-generator: Add @.generated annotation to Swift generated code 8fd6a089
  • scrooge-generator: Provide a $STRUCT#unsetFields method to allow bulk unsets aef5029b
  • scrooge-generator: support thrift validations on nested fields that are struct, union, and
    exception 8bad4dd7
scrooge - Scrooge 22.4.0

Published by finaglehelper over 2 years ago

22.4.0

No Changes

scrooge - Scrooge 22.3.0

Published by finaglehelper over 2 years ago

22.3.0

New Features

  • scrooge-generator: for each method defined in a service in the Thrift IDL, if any request arg
    of a method has annotations started with validation., in Java template, generate a new trait
    ServerValidationMixin with a new API violationReturning<method_name> which validates incoming
    request (of Struct, Union, Exception types) and return any violations (as method parameters
    <request_variable>Violations) back to the users in the method API. aab91465

Breaking API Changes

  • scrooge: ThriftUnion is now defined to extend ThriftStruct. In practice,
    this is not a significant change as all Scrooge-generated classes that
    implement ThriftUnion also implement ThriftStruct. We just made the
    invariant that unions are always structs explicit in the type system.
    34ed2ec3

Runtime Behavior Changes

  • scrooge: Bump version of Jackson to 2.13.2. b283d341
scrooge - Scrooge 22.2.0

Published by finaglehelper over 2 years ago

22.2.0

New Features

  • scrooge-core: c.t.scrooge.ThriftStructCodec.forStructClassTag API for retrieving
    the codec for a struct or union class given a class tag or manifest and
    c.t.scrooge.ThriftStructMetadata.forStructClassTag for retrieving its metadata.
    ba1a97bc
  • scrooge-core: c.t.scrooge.ThriftStructCodec.forStructClass API for retrieving codec
    for a struct or union class and c.t.scrooge.ThriftStructMetadata.forStructClass for
    similarly retrieving its metadata. PHAB_ID=_D825675
  • scrooge-generator: for each method defined in a service in the Thrift IDL, if any request arg
    of a method has annotations started with validation., generate a new trait
    ServerValidationMixin with a new API violationReturning<method_name> which validates incoming
    request (of Struct, Union, Exception types) and return any violations (as method parameters
    <request_variable>Violations) back to the users in the method API. aa83a3f5

Breaking API Changes

  • scrooge-generator: the c.t.scrooge.frontend.ThriftParser now always throws exceptions
    rather than warnings when a fieldname matches a reserved keyword. See
    c.t.scrooge.frontend.ThriftKeywords for the full list of disallowed
    keywords. 33767856
scrooge - Scrooge 22.1.0

Published by finaglehelper over 2 years ago

22.1.0

No Changes

scrooge - Scrooge 21.12.0

Published by finaglehelper almost 3 years ago

21.12.0

No Changes

scrooge - Scrooge 21.11.0

Published by finaglehelper almost 3 years ago

21.11.0

Runtime Behavior Changes

  • scrooge-serializer: concrete implementations of the ThriftStructSerializer
    trait in the c.t.scrooge. package now cache the value of its maxReusableBufferSize
    flag for the duration of the application. This improves performance but also makes them
    not observe changes to the flag. The value of this flag typically does not change during
    run time of an application, so this is deemed an acceptable tradeoff. 064e1535
scrooge - Scrooge 21.10.0

Published by finaglehelper almost 3 years ago

21.10.0

No Changes

scrooge - Scrooge 21.9.0

Published by finaglehelper about 3 years ago

Breaking API Changes

  • scrooge-generator: Dropped the generic (higher-kinded-types) service interface in scala-gen,
    users are recommended to use YourService.MethodPerEndpoint, YourService.ServicePerEndpoint
    and YourService.ReqRepServicePerEndpoint to represent Thrift service endpoints. Note,
    -finagle option is required to generated finagle binding code. 8d768ca6

  • scrooge-generator: Removed YourService.FutureIface and YourService[Future] in scala-gen,
    use $YourService.MethodPerEndpoint instead. Correspondingly, YourService$FinagleService and
    related constructors taking MethodPerEndpoint as parameters. 8d768ca6

  • Scrooge-generator: Dropped ThriftServiceBuilder.build and MethodIfaceBuilder.newMethodIface.
    8d768ca6

  • scrooge-generator: Add reserved keywords to ThriftParser. If your field names match
    these keywords, you may need to modify them. This change should not affect backwards
    and forwards compatiblility if using binary protocol for serde. 884f3603

scrooge - Scrooge 21.8.0

Published by finaglehelper about 3 years ago

Runtime Behavior Changes

  • scrooge: Update ScalaCheck to version 1.15.4. scrooge-sbt-plugin and
    scrooge-generator still use the older version 1.14.3 because they compile
    with Scala 2.10. ad063665
scrooge - Scrooge 21.6.0

Published by finaglehelper over 3 years ago

No Changes

scrooge - Scrooge 21.5.0

Published by finaglehelper over 3 years ago

  • scrooge-generator: Modify struct field names when they match Java keywords by adding
    an underscore prefix to the field name. a33de276
scrooge - Scrooge 21.4.0

Published by finaglehelper over 3 years ago

No Changes but the version update

scrooge - Scrooge 21.3.0

Published by finaglehelper over 3 years ago

Runtime Behavior Changes

Breaking API Changes

  • scrooge: Builds are now only supported for Scala 2.12+ 72f5a0a0
scrooge - Scrooge 21.2.0

Published by finaglehelper over 3 years ago

No Changes

scrooge - Scrooge 21.1.0

Published by finaglehelper over 3 years ago

  • scrooge: Scrooge uses better size estimate for Map/Set containers in read()
    to improve performance in Java. b1ebce81
scrooge - Scrooge 20.12.0

Published by finaglehelper almost 4 years ago

20.12.0

New Features

  • finagle-core: Add a new stat (histogram) that reports how long a task has been sitting in the
    offload queue. This instrumentation is sampled at the given interval (100ms by default) that
    can be overridden with a global flag com.twitter.finagle.offload.statsSampleInterval.
    a7ebf2e1
  • finagle-core: Add a new experimental flag com.twitter.finagle.offload.queueSize that allows to
    put bounds on the offload queue. Any excess work that can't be offloaded due to a queue overflow
    is run on IO (Netty) thread instead. Put this way, this flag enables the simplest form of
    backpressure on the link between Netty and OffloadFilter. af228ca6
  • finagle-netty4: Add ExternalClientEngineFactory to the open source version of Finagle. This
    SslClientEngineFactory acts as a better example of how to build custom client and server engine
    factories in order to reuse SSL contexts for performance concerns. 931785d9
  • finagle-core: Provide com.twitter.finagle.naming.DisplayBoundName for configuring how to
    display the bound Name for a given client in metrics metadata. 67be8e1e
  • finagle-core: Provide ClientParamsInjector, a class that will be service-loaded at run-time
    by Finagle clients, and will allow generic configuration of all sets of parameters.
    b7bb5afc

Breaking API Changes

  • finagle-core: Move DarkTrafficFilter and AbstractDarkTrafficFilter from the experimental
    finagle-exp to supported finagle-core. The package containing these classes changed from
    c.t.finagle.exp to c.t.finagle.filter. 0ecaa5e7
  • finagle-core, finagle-thrift: Move ForwardingWarmUpFilter and ThriftForwardingWarmUpFilter
    from the experimental finagle-exp to supported finagle-core, and finagle-thrift, respectively.
    The package containing ForwardingWarmUpFilter changed from c.t.finagle.exp to
    c.t.finagle.filter, and the package containing ThriftForwardingWarmUpFilter changed from
    c.t.finagle.exp to c.t.finagle.thrift.filter. e725bc86
  • finagle-core: FailureAccrualFactory.isSuccess has been replaced with the method
    def classify(ReqRep): ResponseClass to allow expressing that a failure should be ignored.
    d586bd24

Runtime Behavior Changes

  • finagle-core: Use Scala default implementation to calculate Hashcode and equals method for
    ServiceFactoryProxy. c473b395
  • finagle: Update build.sbt to get aarch64 binaries and try the fast path acquire up to 5 times
    before failing over to the AbstractQueuedSynchronizer slow path in NonReentrantReadWriteLock
    for Arm64. d45dfb02

Bug Fixes

  • finagle-core: Users should no longer see the problematic
    java.lang.UnsupportedOperationException: tail of empty stream when a c.t.f.s.RetryPolicy
    is converted to a String for showing. e7ec247d
scrooge - Scrooge 20.10.0

Published by finaglehelper almost 4 years ago

No Changes

scrooge - Scrooge 20.9.0

Published by finaglehelper about 4 years ago

No Changes