Your go-to microservice framework for any situation, from the creator of Netty et al. You can build any type of microservice leveraging your favorite technologies, including gRPC, Thrift, Kotlin, Retrofit, Reactive Streams, Spring Boot and Dropwizard.

Overview

Visit the official web site for more information.

Armeria

Build a reactive microservice at your pace, not theirs.

Armeria is your go-to microservice framework for any situation. You can build any type of microservice leveraging your favorite technologies, including gRPC, Thrift, Kotlin, Retrofit, Reactive Streams, Spring Boot and Dropwizard.

It is open-sourced by the creator of Netty and his colleagues at LINE Corporation.

Requirements

How to reach us — chat, questions and newsletters

Visit the community to chat with us, ask questions and learn how to contribute.

Hall of fame

See the complete list of our contributors.

Contributors

Comments
  • Revamp RequestLog API

    Revamp RequestLog API

    This PR is still very much WIP - will finish it up by applying pattern for all methods and removing usage of deprecated, adding tests, etc after getting feedback on the API.

    Currently, RequestLog has some issues for maintenance and usability

    • RequestLogAvailability ties different properties together in an ad-hoc way. For example, REQUEST_START has start time and session information. If we find such a relationship is not what we want (e.g., for #2272 we want to separate start time from session information), it is tedious or sometimes impossible to update availabilities in a backwards compatible way.

    • Understanding the properties available for any RequestLogAvailability requires a detailed look at javadoc, and can even require jumping through multiple different availabilities

    This PR proposes some changes to help with this. We don't have to apply all of them, mostly just for brainstorming.

    • Replace RequestLogAvailability with fine-grained RequestLogProperty. Advanced usage can continue to listen for availability of fine-grained properties

      • There is still some sharing of RequestLogProperty for fields that are obviously equivalent semantically. Different units for start time, or end time + duration, are always equivalent so share the same enum value. On the flip side, an exception and response content are considered different since they are totally different semantically.
    • Define two large callbacks - whenRequestComplete and whenComplete. These two seem to be the most standard use cases

      • In #2272 @trustin suggested request identified and response end. From what I understand, request identified is just information from context() and doesn't need a callback, and response end seems to overlap with complete.
    • Add RequestRequestLog which has the accessors for information available when request completes, so users have type-safe access to those properties when using whenRequestComplete

    • Deprecates many shortcut methods. I feel as if having to deal with availability for these shortcut methods makes them less useful. I guess this is most controversial, no problem adding them back if this doesn't make sense.

    One change I haven't made yet is that I would like all fields to be available when request is complete, even for those that didn't get populated (transferred byte times). They could probably return -1 as a default. It seems tricky for just some fields to have a chance of never being available.

    new feature breaking change 
    opened by anuraaga 51
  • HTTP/2 content streaming

    HTTP/2 content streaming

    Related: #85

    This commit contains a lot of changes. I'll group them into several pairs of motivations and modifications.

    Use the Reactive Streams API to support HTTP content streaming

    Motivation:

    Reactive Streams API is the de-facto standard API for implementing object streaming these days; RxJava, gRPC, Akka and Project Reactor are the notable adoptors.

    Modifications:

    • Add RichPublisher and its subtypes to provide the foundation for streaming HTTP content
      • See the com.linecorp.armeria.common.reactivestreams package, most notably:
        • RichPublisher and Writer
        • QueueBasedPublisher

    Decouple the core API from Netty API

    Motivation:

    Armeria is meant to be used by an application developer. Exposing too much detail to him or her is not the best idea.

    Modifications:

    • Hide all Netty HTTP types under Armeria's own HTTP/2-centric message types
      • HttpObject
      • HttpHeaders
      • HttpData
      • HttpMethod
      • HttpStatus
      • HttpStatusClass
      • HttpHeaderNames
    • Introduce HttpRequest and HttpResponse whose content is a RichPublisher, our reactive streams API
    • Add AggregatedHttpMessage which is the FullHttpMessage counterpart
    • Add HttpRequest/ResponseWriter for easier composition of an HTTP message
    • Do not expose ByteBuf in the user-facing API
    • Use CompletableFuture instead of Netty Future/Promise
    • Note that we still use Netty's AsciiString as header names because it's generic enough

    Redefine Client, Service and their context API

    Motivation:

    Previously, we shared one context type for both client and server side: ServiceInvocationContext. This is potentially confusing and both client and server sides had to shoehorn their models into the common model provided by ServiceInvocationContext.

    Also, ServiceInvocationContext assumed that a request is fully available when context is created. However, this is not true anymore with content streaming.

    Modifications:

    • Replace ServiceInvocationContext with RequestContext
      • Add ClientRequestContext and ServiceRequestContext
      • All timeout settings, maximum allowed content length and custom HTTP header options are now overridable via the setters of the context.
    • Only expose the information that could be available when a request has just started rather than when a full request is ready.
      • Add RequestLog and ResponseLog so that a client or a service fills the properties as they are available. A user will be notified via requestLogFuture() and responseLogFuture() when all necessary information is ready.
      • For example, RequestContext.method() property always returns the method at the session layer. That is, in a Thrift-over-HTTP call, ctx.method() will return "POST" rather than "someThriftMethod". It is because such information is available only when the full request has been received. You can get the Thrift method name from RequestLog once it's ready.
      • See LoggingClient/Server and MetricCollectingClient/Server for code example
    • Remove ClientCodec, RemoteInvoker, ServiceCodec, ServiceInvocationHandler, because they are all merged into Client or Service

    Overall reorganization of session layer implementation

    Motivation:

    Our code layout is too HTTP-centric and this will eventually make it hard to add other session protocols.

    Modifications:

    • Move HTTP-specific code to com.linecorp.armeria.{server,client}.http
    • Move the internal classes that could be shared between client and server to com.linecorp.armeria.internal.*

    Implement HTTP content streaming at the session layer

    Modifications:

    • Use Armeria's own HTTP/2 centric streaming-aware API instead of aggregating an HTTP/1 or 2 request into a full HTTP/1 request
      • See Http1/2RequestDecoder, HttpResponseSubscriber and HttpServerHandler to learn how this works on the server side
        • Start from Http1/2RequestDecoder to HttpServerHandler.handleRequest()
      • See Http1/2ResponseDecoder, HttpRequestSubscriber and HttpSessionHandler to learn how this works on the client side
        • Start from HttpSessionHandler.invoke()

    Revamp HttpService, ThriftService and other services with the new core API

    Motivation:

    HttpService and ThriftService assumes a request is fully received when it is invoked, which is not true anymore. Also, they are split into two components, ServiceCodec and ServiceInvocationHandler, and they are gone now.

    Modifications:

    • HttpService is now an interface.
      • Add AbstractHttpService which replaces the old HttpService class
    • ThriftService is now THttpService.
      • ThriftService is split into two parts: THttpService and ThriftCallService.
        • THttpService translates an HTTP request into a ThriftCall and a ThriftReply into an HTTP response. (similar to ServiceCodec)
        • ThriftCallService delegates a ThriftCall to a stub implementation. (similar to ServiceInvocationHandler)
      • Deprecate ThriftService
    • Other service implementations underwent similar changes to work with the new API.

    Revamp client-side service composition and decoration

    Motivation:

    Previous client composition and decoration was based on the assumption that the full request content is available upon its invocation, which isn't true anymore.

    Modifications:

    • Replace the option 'DECORATOR' with 'DECORATION' whose value type is 'ClientDecorations'
      • A user is now expected to specify the type of the request and response he or she desires to intercept, and the ClientFactory will apply the decorator at the right place in the invocation chain.
        • builder.add(ThriftCall.class, ThriftReply.class, thriftCallDecorator);
        • builder.add(HttpRequest.class, HttpResponse.class, httpDecorator);

    Write new HTTP client API

    Motivation:

    SimpleHttpClient exposes Netty API and it's not powerful enough.

    Modifications:

    • Add HttpClient which replaces SimpleHttpClient
    • Deprecate SimpleHttpClient

    Merge ThriftFunction and ThriftMethod

    Motivation:

    They basically do the same job slightly differently.

    Modifications:

    • Merge them into one implementation and move to the internal package.
      • See com.linecorp.armeria.internal.thrift.{ThriftFunction,ThriftServiceMetadata}

    Provide a way to add a decorator to all services

    Motivation:

    Some decorators are often meant to be added to all services in a server or in a VirtualHost.

    Modifications:

    • Add ServerBuilder.decorator() that adds a decorator to all services in a server
    • Add VirtualHostBuilder.decorator() that adds a decorator too all services in a VirtualHost

    Rename RemoteInvokerFactory to ClientFactory

    Motivation:

    RemoteInvoker is now gone. ClientFactory sounds better in my opinion.

    Modification:

    • Rename/replace RemoteInvoker to/with ClientFactory
    • Add HttpClientFactory and ThriftClientFactory
    • Add AllInOneClientFactory that supports both HTTP and Thrift-over-HTTP via the two ClientFactories above
    • Rename RemoveInvokerOption and its related classes to SessionOption

    Refactor LoggingClient/Service and MetricCollectingClient/Service

    • Rename MetricConsumer to MessageLogConsumer
    • Move the classes in the 'metrics' package to the 'logging' package
    • Add LogCollectingClient/Service
    • LoggingClient/Service and MetricCollectingClient/Service extends LogCollectingClient/Service
    • Rename MetricCollectingClient/Service to DropwizardMetricCollectingClient/Service because a user can use LogCollectingClient/Service to support his/her favorite metric collecting library

    Result

    • HTTP content streaming works.
    • Frequently used service implementations such as ThriftService, TomcatService, JettyService and HttpFileService works without modifying user code.
    • Frequently used client implementations such as SimpleHttpClient and usual Thrift client stub generation works as before.
    new feature 
    opened by trustin 46
  • OAuth2 Support

    OAuth2 Support

    Related issue: #2268

    This changeset contains the following new experimental features:

    • OAuth 2.0 server-side token authorization:
      • OAuth2TokenIntrospectionAuthorizer - implementing Token Introspection [RFC7662] - https://datatracker.ietf.org/doc/rfc7662/
    • OAuth 2.0 client-side authorization grants for confidential clients (OAuth2Client), including:
      • OAuth2ClientCredentialsGrant - implementing Client Credentials Grant [RFC6749], Section 4.4 - https://datatracker.ietf.org/doc/html/rfc6749#section-4.4
      • OAuth2ResourceOwnerPasswordCredentialsGrant - implementing Resource Owner Password Credentials Grant [RFC6749], Section 4.3 - https://datatracker.ietf.org/doc/html/rfc6749#section-4.3
    • OAuth 2.0 Token Revocation [RFC7009] - https://datatracker.ietf.org/doc/rfc7009/

    This changeset also adds the following to support OAuth2 authorization properly:

    • Authorizer.authorizeAndSupplyHandlers()
    • AuthorizationStatus
    • AbstractAuthorizerWithHandlers
    new feature 
    opened by max904-github 40
  • Changing the http tracing code to use Brave's HttpTracing helper

    Changing the http tracing code to use Brave's HttpTracing helper

    Try to solve https://github.com/line/armeria/issues/1223 .

    Modification:

    • Switching to HttpTracing.
    • Create armeria's brave http parser/adapter.
    • Add ArmeriaHttpTracingBuilder for user.
    • Propagate scope even it's no-op.

    Need to consider and TODO in this PR:

    • ~We can't use RequestLog's timestamp for start and finish.~
    • Span is created when calling handleSend/Receive, at that time we don't have scheme.
    • Basically all use RequestLog, it's easier to get req/res related tag value.
    • Test for Builder.
    • JavaDoc for adapter and parser.

    TODO

    • [x] http-tests-server
    • [x] http-tests-client
    • [x] Tests for parser and adapter
    new feature 
    opened by kojilin 31
  • Extract grpc protocol to separate artifact and add AbstractUnaryGrpcService.

    Extract grpc protocol to separate artifact and add AbstractUnaryGrpcService.

    For #1703

    Tried extracting a package within the armeria-grpc artifact that only contains wire format logic, but it is fragile due to accidental dependencies and classpath magic like service loaders, which we use. So now we extract to a separate artifact entirely.

    AbstractUnaryGrpcService allows defining unary gRPC services that are provided the direct bytes of a single gRPC message and return the bytes of a single gRPC message, and the base class takes cafe of the gRPC wire protocol. As this is an advanced use case, it doesn't attempt to implement everything in gRPC but should hopefully provide enough for most armeria-grpc users that are concerned about having dependencies on stub libraries.

    @adriancole can you check whether this works for you or provide any suggestions?

    new feature 
    opened by anuraaga 31
  • Support servlet API

    Support servlet API

    Motivation: It will be nice if Armeria supports servlet.

    Modifications:

    • Added servlet4 module and implemented the minimum features.

    Result:

    • Support the part of servlet APIs
    new feature 
    opened by dominhhien 30
  • Introduce Pooled* versions of APIs which delegate to the stand…

    Introduce Pooled* versions of APIs which delegate to the stand…

    …ard ones while assuring all operations use pooled objects.

    Currently APIs that use unsafe patterns, exposing reference counted objects, are mixed with the normal API. Because they're dangerous, we should hide them as much as possible, so this makes using the unsafe API explicit by requiring using the unsafe API entry points. Unsafe API users also get a QOL increase at the same time by adding the ability to use this API with try/resources.

    See #1938 for prior discussion.

    new feature breaking change 
    opened by anuraaga 30
  • Support service discovery using Consul

    Support service discovery using Consul

    Motivation:

    • Issue: #194 Service discovery support (serversets, k8s, ..).
    • Service discovery supports Consul.

    Modifications:

    • Creates consul module
    • Add dependencies for consul and consul test server
    • Add base client for consul
    • Add test cases

    To dos:

    • Add detail clients corresponding to the each Consul API
    • Add cached client for health checking
    • Add ConsulEndpointGroup

    Result:

    • Supports Consul discovery service
    new feature 
    opened by eugene70 30
  • Support prefix option for Logback integration

    Support prefix option for Logback integration

    Support prefix option <exportPrefix> for Logback integration to specify the prefix of exported MDC properties.

    For example, if this xml is loaded

      <appender name="RCEA" class="com.linecorp.armeria.common.logback.RequestContextExportingAppender">
        <!-- specify the prefix of exported MDC properties -->
        <exportPrefix>armeria</exportPrefix>
        <export>req.*</export>
        <export>res.*</export>
        ...
      </appender>
    

    then RequestContextExportingAppender exports armeria.req.path, armeria.req.service_name, armeria.res.status_code, etc.

    new feature 
    opened by okue 29
  • Add `QueryParams` which deprecates `HttpParameters`

    Add `QueryParams` which deprecates `HttpParameters`

    Motivation:

    • #1567

    Modifications:

    • Fork our HTTP headers API into:
      • QueryParams
      • QueryParamGetters
      • QueryParamsBase
      • QueryParamsBuilder
    • Extract the common logic and API between HTTP API and query params API into:
      • StringMultimap
      • StringMultimapGetters
    • Add support for QueryParams to annotated services.
    • Update documentation.
    • Deprecate HttpParameters.
    • Replace the usage of Netty QueryString{Encoder,Decoder} with:
      • QueryParamGetter.toQueryString() and appendQueryString()
      • QueryParams.fromQueryString()
    • Add microbenchmarks for QueryString{Encoder,Decoder}.

    Result:

    • Closes #1567
    • Nicer and faster way to decode/encode a query string.
    new feature deprecation 
    opened by trustin 27
  • Add Dropwizard module

    Add Dropwizard module

    Adding module for dropwizard integration

    Why

    1. I use Dropwizard at work, currently, I'm sure others do as well, and trust it's built-in Jetty http server, but might want other features. There already is a Dropwizard gRPC Bundle, but doesn't handle Thrift, AFAIK (not that that is a major feature for me, anyway).
    2. Wanted to see how difficult swapping out Dropwizard Jetty servers would be. 😄
    3. I am curious how much "faster" Dropwizard would be with Armeria. src: https://www.techempower.com/benchmarks/#section=data-r18&hw=ph&test=plaintext&l=zik0vz-f

    Progress

    • [x] Dropwizard Bundle
      • [x] Buildable Source
      • Tests
        • [x] YAML configurations
        • [x] Dropwizard lifecycle of Armeria server
        • [x] Testing of services within an Dropwizard application instance (maybe via AccessLog capture)
    • [x] Runnable Example
    • [x] Docs

    Closes #2165

    new feature 
    opened by OneCricketeer 27
  • build with jdk 19

    build with jdk 19

    Motivation:

    we can enable jdk 19 builds and test out project loom features

    Modifications:

    • include jdk 19 in the GitHub action build matrix

    Result:

    • Closes #4465
    • loom features can be enabled during tests
    opened by Jimexist 1
  • Bump sharp, gatsby-plugin-image, gatsby-plugin-manifest, gatsby-plugin-sharp, gatsby-remark-images and gatsby-transformer-sharp in /site

    Bump sharp, gatsby-plugin-image, gatsby-plugin-manifest, gatsby-plugin-sharp, gatsby-remark-images and gatsby-transformer-sharp in /site

    Bumps sharp to 0.30.7 and updates ancestor dependencies sharp, gatsby-plugin-image, gatsby-plugin-manifest, gatsby-plugin-sharp, gatsby-remark-images and gatsby-transformer-sharp. These dependencies need to be updated together.

    Updates sharp from 0.29.3 to 0.30.7

    Changelog

    Sourced from sharp's changelog.

    v0.30.7 - 22nd June 2022

    v0.30.6 - 30th May 2022

    • Allow values for limitInputPixels larger than 32-bit. #3238

    • Ensure brew-installed vips can be detected (regression in 0.30.5). #3239

    v0.30.5 - 23rd May 2022

    v0.30.4 - 18th April 2022

    • Increase control over sensitivity to invalid images via failOn, deprecate failOnError (equivalent to failOn: 'warning').

    • Ensure create input image has correct bit depth and colour space. #3139

    • Add support for TypedArray input with byteOffset and length. #3146 @​codepage949

    • Improve error message when attempting to render SVG input greater than 32767x32767.

    ... (truncated)

    Commits

    Updates gatsby-plugin-image from 1.14.2 to 2.24.0

    Changelog

    Sourced from gatsby-plugin-image's changelog.

    2.24.0 (2022-09-27)

    🧾 Release notes

    Chores

    2.23.1 (2022-09-22)

    Note: Version bump only for package gatsby-plugin-image

    2.23.0 (2022-09-13)

    🧾 Release notes

    Features

    2.22.0 (2022-08-30)

    🧾 Release notes

    Bug Fixes

    2.21.0 (2022-08-16)

    🧾 Release notes

    Bug Fixes

    2.20.0 (2022-08-02)

    🧾 Release notes

    Bug Fixes

    Chores

    2.19.0 (2022-07-19)

    ... (truncated)

    Commits
    Maintainer changes

    This version was pushed to npm by marvinjudehk, a new releaser for gatsby-plugin-image since your current version.


    Updates gatsby-plugin-manifest from 3.14.0 to 4.24.0

    Release notes

    Sourced from gatsby-plugin-manifest's releases.

    v4.24

    Welcome to [email protected] release (September 2022 #2)

    Key highlights of this release:

    Bleeding Edge: Want to try new features as soon as possible? Install [email protected] and let us know if you have any issues.

    Previous release notes

    Full changelog

    v4.23

    Welcome to [email protected] release (September 2022 #1)

    Key highlights of this release:

    Bleeding Edge: Want to try new features as soon as possible? Install [email protected] and let us know if you have any issues.

    Previous release notes

    Full changelog

    v4.22

    Welcome to [email protected] release (August 2022 #3)

    Key highlights of this release:

    Bleeding Edge: Want to try new features as soon as possible? Install [email protected] and let us know if you have any issues.

    Previous release notes

    Full changelog

    v4.21

    Welcome to [email protected] release (August 2022 #2)

    Key highlights of this release:

    Bleeding Edge: Want to try new features as soon as possible? Install [email protected] and let us know if you have any issues.

    ... (truncated)

    Changelog

    Sourced from gatsby-plugin-manifest's changelog.

    4.24.0 (2022-09-27)

    🧾 Release notes

    Note: Version bump only for package gatsby-plugin-manifest

    4.23.1 (2022-09-22)

    Note: Version bump only for package gatsby-plugin-manifest

    4.23.0 (2022-09-13)

    🧾 Release notes

    Note: Version bump only for package gatsby-plugin-manifest

    4.22.0 (2022-08-30)

    🧾 Release notes

    Note: Version bump only for package gatsby-plugin-manifest

    4.21.0 (2022-08-16)

    🧾 Release notes

    Chores

    4.20.0 (2022-08-02)

    🧾 Release notes

    Note: Version bump only for package gatsby-plugin-manifest

    4.19.0 (2022-07-19)

    🧾 Release notes

    Note: Version bump only for package gatsby-plugin-manifest

    4.18.1 (2022-07-12)

    Note: Version bump only for package gatsby-plugin-manifest

    4.18.0 (2022-07-05)

    🧾 Release notes

    ... (truncated)

    Commits
    Maintainer changes

    This version was pushed to npm by marvinjudehk, a new releaser for gatsby-plugin-manifest since your current version.


    Updates gatsby-plugin-sharp from 3.14.3 to 4.24.0

    Release notes

    Sourced from gatsby-plugin-sharp's releases.

    v4.24

    Welcome to [email protected] release (September 2022 #2)

    Key highlights of this release:

    Bleeding Edge: Want to try new features as soon as possible? Install [email protected] and let us know if you have any issues.

    Previous release notes

    Full changelog

    v4.23

    Welcome to [email protected] release (September 2022 #1)

    Key highlights of this release:

    Bleeding Edge: Want to try new features as soon as possible? Install [email protected] and let us know if you have any issues.

    Previous release notes

    Full changelog

    v4.22

    Welcome to [email protected] release (August 2022 #3)

    Key highlights of this release:

    Bleeding Edge: Want to try new features as soon as possible? Install [email protected] and let us know if you have any issues.

    Previous release notes

    Full changelog

    v4.21

    Welcome to [email protected] release (August 2022 #2)

    Key highlights of this release:

    Bleeding Edge: Want to try new features as soon as possible? Install [email protected] and let us know if you have any issues.

    ... (truncated)

    Changelog

    Sourced from gatsby-plugin-sharp's changelog.

    4.24.0 (2022-09-27)

    🧾 Release notes

    Note: Version bump only for package gatsby-plugin-sharp

    4.23.1 (2022-09-22)

    Note: Version bump only for package gatsby-plugin-sharp

    4.23.0 (2022-09-13)

    🧾 Release notes

    Chores

    4.22.0 (2022-08-30)

    🧾 Release notes

    Chores

    4.21.0 (2022-08-16)

    🧾 Release notes

    Chores

    4.20.0 (2022-08-02)

    🧾 Release notes

    Bug Fixes

    4.19.0 (2022-07-19)

    🧾 Release notes

    Bug Fixes

    ... (truncated)

    Commits
    • 9f4c0b9 chore(release): Publish
    • 87f280a chore(release): Publish next
    • ea00e12 chore(release): Publish next
    • 6815536 chore(release): Publish next
    • 53a4e5a chore(changelogs): update changelogs (#36605)
    • ba43263 chore(release): Publish next pre-minor
    • 3bc957b chore(changelogs): update changelogs (#36501)
    • 232d3b6 chore(release): Publish next
    • 9dcc773 chore(gatsby, gatsby-transformer-remark, gatsby-plugin-sharp): Cleanup v4 com...
    • 4707fb8 chore(gatsby-plugin-sharp): upgrade svgo (#36445)
    • Additional commits viewable in compare view
    Maintainer changes

    This version was pushed to npm by marvinjudehk, a new releaser for gatsby-plugin-sharp since your current version.


    Updates gatsby-remark-images from 5.11.0 to 6.24.0

    Changelog

    Sourced from gatsby-remark-images's changelog.

    6.24.0 (2022-09-27)

    🧾 Release notes

    Note: Version bump only for package gatsby-remark-images

    6.23.1 (2022-09-22)

    Note: Version bump only for package gatsby-remark-images

    6.23.0 (2022-09-13)

    🧾 Release notes

    Note: Version bump only for package gatsby-remark-images

    6.22.0 (2022-08-30)

    🧾 Release notes

    Chores

    6.21.0 (2022-08-16)

    🧾 Release notes

    Note: Version bump only for package gatsby-remark-images

    6.20.0 (2022-08-02)

    🧾 Release notes

    Note: Version bump only for package gatsby-remark-images

    6.19.0 (2022-07-19)

    🧾 Release notes

    Chores

    • Update READMEs for better instructions (0890a5c)

    6.18.1 (2022-07-12)

    Note: Version bump only for package gatsby-remark-images

    6.18.0 (2022-07-05)

    ... (truncated)

    Commits
    • 9f4c0b9 chore(release): Publish
    • 87f280a chore(release): Publish next
    • ea00e12 chore(release): Publish next
    • 53a4e5a chore(changelogs): update changelogs (#36605)
    • ba43263 chore(release): Publish next pre-minor
    • 3bc957b chore(changelogs): update changelogs (#36501)
    • b08336b chore(release): Publish next pre-minor
    • 0d896ae chore(gatsby-plugin-sharp,gatsby-plugin-utils,gatsby-remark-images,gatsby-tra...
    • b92bd7a chore(changelogs): update changelogs (#36397)
    • ee8df07 chore(release): Publish next
    • Additional commits viewable in compare view
    Maintainer changes

    This version was pushed to npm by marvinjudehk, a new releaser for gatsby-remark-images since your current version.


    Updates gatsby-transformer-sharp from 3.14.0 to 4.24.0

    Release notes

    Sourced from gatsby-transformer-sharp's releases.

    v4.24

    Welcome to [email protected] release (September 2022 #2)

    Key highlights of this release:

    Bleeding Edge: Want to try new features as soon as possible? Install [email protected] and let us know if you have any issues.

    Previous release notes

    Full changelog

    v4.23

    Welcome to [email protected] release (September 2022 #1)

    Key highlights of this release:

    Bleeding Edge: Want to try new features as soon as possible? Install [email protected] and let us know if you have any issues.

    Previous release notes

    Full changelog

    v4.22

    Welcome to [email protected] release (August 2022 #3)

    Key highlights of this release:

    Bleeding Edge: Want to try new features as soon as possible? Install [email protected] and let us know if you have any issues.

    Previous release notes

    Full changelog

    v4.21

    Welcome to [email protected] release (August 2022 #2)

    Key highlights of this release:

    Bleeding Edge: Want to try new features as soon as possible? Install [email protected] and let us know if you have any issues.

    ... (truncated)

    Changelog

    Sourced from gatsby-transformer-sharp's changelog.

    4.24.0 (2022-09-27)

    🧾 Release notes

    Note: Version bump only for package gatsby-transformer-sharp

    4.23.1 (2022-09-22)

    Note: Version bump only for package gatsby-transformer-sharp

    4.23.0 (2022-09-13)

    🧾 Release notes

    Note: Version bump only for package gatsby-transformer-sharp

    4.22.0 (2022-08-30)

    🧾 Release notes

    Chores

    4.21.0 (2022-08-16)

    🧾 Release notes

    Chores

    4.20.0 (2022-08-02)

    🧾 Release notes

    Note: Version bump only for package gatsby-transformer-sharp

    4.19.0 (2022-07-19)

    🧾 Release notes

    Chores

    • Update READMEs for better instructions (0890a5c)

    4.18.1 (2022-07-12)

    Note: Version bump only for package gatsby-transformer-sharp

    ... (truncated)

    Commits
    • 9f4c0b9 chore(release): Publish
    • 87f280a chore(release): Publish next
    • ea00e12 chore(release): Publish next
    • 53a4e5a chore(changelogs): update changelogs (#36605)
    • ba43263 chore(release): Publish next pre-minor
    • 3bc957b chore(changelogs): update changelogs (#36501)
    • b08336b chore(release): Publish next pre-minor
    • 0d896ae chore(gatsby-plugin-sharp,gatsby-plugin-utils,gatsby-remark-images,gatsby-tra...
    • b92bd7a chore(changelogs): update changelogs (#36397)
    • ee8df07 chore(release): Publish next
    • Additional commits viewable in compare view
    Maintainer changes

    This version was pushed to npm by marvinjudehk, a new releaser for gatsby-transformer-sharp since your current version.


    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Provide a way to set a request timeout using annotation

    Provide a way to set a request timeout using annotation

    The timeout of an annotated service could be set using AnnotatedServiceBindingBuilder.requestTimeoutMillis(). However, it is globally applied to all methods of the service. If users want to set a custom timeout, they have to call ServiceRequestContext.setRequestTimeout() manually in a service or decorator.

    It would be easy to set a timeout of a service or method if we introduce @RequestTimeout. For example:

    @RequestTimeout(value = 5, TimeUnit.SECONDS)
    class MyService {
    
        // Override the service timeout and set the timeout to 10 seconds
        @RequestTimeout(value = 10, TimeUnit.SECONDS)
        @Get
        ...
        public CompletableFuture<List<Item>> getItems(...);
    
        // Limit timeout to 5 seconds
        @Get
        ...
        public CompletableFuture<Item> getItem(...);
    }
    

    If both AnnotatedServiceBindingBuilder.requestTimeout() and @RequestTimeout() is set, we can give priority to @RequestTimeout.

    new feature 
    opened by ikhoon 0
  • Test failure: `RetryingRpcClientTest.shouldGetExceptionWhenFactoryIsClosed()`

    Test failure: `RetryingRpcClientTest.shouldGetExceptionWhenFactoryIsClosed()`

    RetryingRpcClientTest > shouldGetExceptionWhenFactoryIsClosed() FAILED
        java.lang.AssertionError: 
        Expecting actual throwable to be an instance of:
          java.lang.IllegalStateException
        but was:
          java.nio.channels.ClosedChannelException
        	at io.netty.channel.nio.AbstractNioChannel.doClose(AbstractNioChannel.java:502)
        	at io.netty.channel.socket.nio.NioSocketChannel.doClose(NioSocketChannel.java:349)
        	at io.netty.channel.AbstractChannel$AbstractUnsafe.doClose0(AbstractChannel.java:754)
        	...(8 remaining lines not displayed - this can be changed with Assertions.setMaxStackTraceElementsDisplayed)
            at com.linecorp.armeria.it.client.retry.RetryingRpcClientTest.shouldGetExceptionWhenFactoryIsClosed(RetryingRpcClientTest.java:281)
    
    cleanup 
    opened by ikhoon 0
  • Support request scoped dataloader

    Support request scoped dataloader

    Motivation:

    According to https://github.com/graphql-java/java-dataloader/issues/48 it is recommended to create a DataLoaderRegistry per request. But armeria-graphql only provides a fixed DataLoaderRegistry.

    Modifications:

    • Add DataLoaderRegistryCreationStrategy
    • Deprecated GraphqlServiceBuilder#configureDataLoaderRegistry(...)
    GraphqlService.builder()
                  .dataLoaderRegistry(DataLoaderRegistryCreationStrategy.of()) <--
               // .dataLoaderRegistry(DataLoaderRegistryCreationStrategy.ofFixed()) <--
    

    Result:

    • Closes #4237
    new feature 
    opened by heowc 3
Releases(armeria-1.20.0)
Nifty is an implementation of Thrift clients and servers on Netty

his project is archived and no longer maintained. At the time of archiving, open issues and pull requests were clo

Meta Archive 902 Sep 9, 2022
SCG used as as proxy to connect gRPC-Web and back end gRPC services

gRPC-Web Spring Cloud Gateway Spring Cloud Gateway 3.1.1 supports for gRPC and HTTP/2. It is possible to use Spring Cloud Gateway to connect gRPC-Web

null 1 Apr 4, 2022
Reactive stubs for gRPC

What is reactive-grpc? Reactive gRPC is a suite of libraries for using gRPC with Reactive Streams programming libraries. Using a protocol buffers comp

Salesforce 753 Sep 22, 2022
An annotation-based Java library for creating Thrift serializable types and services.

Drift Drift is an easy-to-use, annotation-based Java library for creating Thrift clients and serializable types. The client library is similar to JAX-

null 221 Sep 13, 2022
Apache Thrift is a lightweight, language-independent software stack for point-to-point RPC implementation

Apache Thrift Introduction Thrift is a lightweight, language-independent software stack for point-to-point RPC implementation. Thrift provides clean a

The Apache Software Foundation 9.4k Sep 30, 2022
Simulating shitty network connections so you can build better systems.

Comcast Testing distributed systems under hard failures like network partitions and instance termination is critical, but it's also important we test

Tyler Treat 9.7k Oct 2, 2022
Netty project - an event-driven asynchronous network application framework

Netty Project Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol serv

The Netty Project 30k Sep 30, 2022
Experimental Netty-based Java 16 application/web framework

Experimental Netty-based application/web framework. An example application can be seen here. Should I use this? Probably not! It's still incredibly ea

amy null 8 Feb 17, 2022
The Java gRPC implementation. HTTP/2 based RPC

gRPC-Java - An RPC library and framework gRPC-Java works with JDK 7. gRPC-Java clients are supported on Android API levels 16 and up (Jelly Bean and l

grpc 10.1k Sep 30, 2022
Book Finder application is a client-server application (gRPC) for educational purposes.

Book-Finder Book Finder application is a client-server application (gRPC) for educational purposes. Instalation These projects (Client/Server) are Mav

Mihai-Lucian Rîtan 20 Jan 30, 2022
gRPC Facade for Transactional Keyvalue Stores

lionrock An implementation agnostic client/server communication protocol (using protobuf and grpc) inspired heavily by FoundationDB (https://github.co

Clement Pang 22 Aug 13, 2022
IoT Platform, Device management, data collection, processing and visualization, multi protocol, rule engine, netty mqtt client

GIoT GIoT: GIoT是一个开源的IoT平台,支持设备管理、物模型,产品、设备管理、规则引擎、多种存储、多sink、多协议(http、mqtt、tcp,自定义协议)、多租户管理等等,提供插件化开发 Documentation Quick Start Module -> giot-starte

gerry 34 Sep 13, 2022
Simple & Lightweight Netty packet library + event system

Minimalistic Netty-Packet library Create packets with ease Bind events to packets Example Packet: public class TestPacket extends Packet { privat

Pierre Maurice Schwang 15 Aug 24, 2022
An netty based asynchronous socket library for benchion java applications

Benchion Sockets Library An netty based asynchronous socket library for benchion java applications ?? Documents ?? Report Bug · Request Feature Conten

Fitchle 3 Feb 16, 2022
Intra is an experimental tool that allows you to test new DNS-over-HTTPS services that encrypt domain name lookups and prevent manipulation by your network

Intra Intra is an experimental tool that allows you to test new DNS-over-HTTPS services that encrypt domain name lookups and prevent manipulation by y

Jigsaw 1.1k Oct 4, 2022
CustomRPC - a tool that allows you to change your discord rich presence (RPC) to a custom one

CustomRPC is a tool that allows you to change your discord rich presence (RPC) to a custom one. It also allows creating sentence sequences

null 2 May 3, 2022
A networking framework that evolves with your application

ServiceTalk ServiceTalk is a JVM network application framework with APIs tailored to specific protocols (e.g. HTTP/1.x, HTTP/2.x, etc…) and supports m

Apple 778 Oct 1, 2022
Telegram API Client and Telegram BOT API Library and Framework in Pure java.

Javagram Telegram API Client and Telegram Bot API library and framework in pure Java. Hello Telegram You can use Javagram for both Telegram API Client

Java For Everything 3 Oct 17, 2021