Akka HTTP - The Streaming-first HTTP server/module of Akka

  •        73

The Akka HTTP modules implement a full server- and client-side HTTP stack on top of akka-actor and akka-stream. It's not a web-framework but rather a more general toolkit for providing and consuming HTTP-based services. While interaction with a browser is of course also in scope it is not the primary focus of Akka HTTP.

Akka HTTP follows a rather open design and many times offers several different API levels for "doing the same thing". You get to pick the API level of abstraction that is most suitable for your application. This means that, if you have trouble achieving something using a high-level API, there's a good chance that you can get it done with a low-level API, which offers more flexibility but might require you to write more application code.

http://akka.io
https://github.com/akka/akka-http

Tags
Implementation
License
Platform

   




Related Projects

akka-http-session - Web & mobile client-side akka-http sessions, with optional JWT support

  •    Java

akka-http is an Akka module, originating from spray.io, for building reactive REST services with an elegant DSL. akka-http is a great toolkit for building backends for single-page or mobile applications. In almost all apps there is a need to maintain user sessions, make sure session data is secure and cannot be tampered with.

squbs - Akka/Akka HTTP for Large-Scale Production Deployments

  •    Scala

squbs (pronounced "skewbs") is a software container and a suite of components enabling standardization and operationalization of Akka and Akka HTTP applications/services in a large scale, managed, cloud environment. It standardizes how Akka applications are deployed in different environments and how they are hooked up to the operational environments of large, internet-scale organizations.Also check out these slightly more advanced samples.

sttp - The Scala HTTP client you always wanted!

  •    Scala

sttp is an open-source library which provides a clean, programmer-friendly API to define HTTP requests and execute them using one of the wrapped backends, such as akka-http, async-http-client or OkHttp. sttp documentation is available at sttp.readthedocs.io.

reactive-microservices - Project showcasing different microservice communication styles using Scala, Akka, Play and other tools from Scala ecosystem

  •    Scala

Reactive microservices is an Typesafe Activator Template completely devoted to microservices architecture. It lets you learn about microservices in general - different patterns, communication protocols and 'tastes' of microservices. All these concepts are demonstrated using Scala, Akka, Play and other tools from Scala ecosystem. For the sake of clarity, we skipped topics related to deployment and operations. To feel comfortable while playing with this template, make sure you know basics of Akka HTTP which is a cornerstone of this project. We recently released an Akka HTTP activator template that may help you start. At least brief knowledge of Akka remoting, Akka persistence, Akka streams and Play Framework websockets is also highly recommended.

akka-http-scala-js-websocket-chat - An example app that integrates akka-http and scala-js to implement a websocket chat

  •    Scala

A simple chat app that uses akka-http backend and a scala.js frontend to implement a simple websocket based chat application.Navigate to http://localhost:8080/.


akka-http-json - Integrate some of the best JSON libs in Scala with Akka HTTP

  •    Scala

Mix ArgonautSupport, FailFastCirceSupport or ErrorAccumulatingCirceSupport, JacksonSupport, Json4sSupport, PlayJsonSupport, UpickleSupport or AvroSupport into your Akka HTTP code which is supposed to (un)marshal from/to JSON. Don't forget to provide the type class instances for the respective JSON libraries, if needed. Contributions via GitHub pull requests are gladly accepted from their original author. Along with any pull requests, please state that the contribution is your original work and that you license the work to the project under the project's open source license. Whether or not you state this explicitly, by submitting any copyrighted material via pull request, email, or other means you agree to license the material under the project's open source license and warrant that you have the legal authority to do so.

akka-http-rest - Example of reactive REST service written on akka-http with slick

  •    Scala

Goal of example is to show how create reactive REST services on Lightbend stack with Akka and Slick. Example contains complete REST service for entity interaction.

alpakka-kafka - Alpakka Kafka connector - Alpakka is a Reactive Enterprise Integration library for Java and Scala, based on Reactive Streams and Akka

  •    Scala

Systems don't come alone. In the modern world of microservices and cloud deployment, new components must interact with legacy systems, making integration an important key to success. Reactive Streams give us a technology-independent tool to let these heterogeneous systems communicate without overwhelming each other. The Alpakka project is an open source initiative to implement stream-aware, reactive, integration pipelines for Java and Scala. It is built on top of Akka Streams, and has been designed from the ground up to understand streaming natively and provide a DSL for reactive and stream-oriented programming, with built-in support for backpressure. Akka Streams is a Reactive Streams and JDK 9+ java.util.concurrent.Flow-compliant implementation and therefore fully interoperable with other implementations.

alpakka - Alpakka is a Reactive Enterprise Integration library for Java and Scala, based on Reactive Streams and Akka

  •    Scala

Systems don't come alone. In the modern world of microservices and cloud deployment, new components must interact with legacy systems, making integration an important key to success. Reactive Streams give us a technology-independent tool to let these heterogeneous systems communicate without overwhelming each other. The Alpakka project is an open source initiative to implement stream-aware, reactive, integration pipelines for Java and Scala. It is built on top of Akka Streams, and has been designed from the ground up to understand streaming natively and provide a DSL for reactive and stream-oriented programming, with built-in support for backpressure. Akka Streams is a Reactive Streams and JDK 9+ java.util.concurrent.Flow-compliant implementation and therefore fully interoperable with other implementations.

akka-http-microservice - Example of (micro)service written in Scala & akka-http

  •    HTML

The service in the template provides two REST endpoints - one which gives GeoIP info for given IP and another for calculating geographical distance between given pair of IPs. The project uses the service ip-api which offers JSON IP and GeoIP REST API for free for non-commercial use. If you want to read more thorough explaination, check out tutorial.

spray - A suite of scala libraries for building and consuming RESTful web services on top of Akka: lightweight, asynchronous, non-blocking, actor-based, testable

  •    Scala

spray is no longer maintained and has been superseded by Akka HTTP. Please check out the migration guide for help with the upgrade.

restcommander - Fast Parallel Async HTTP client as a Service to monitor and manage 10,000 web servers

  •    Java

Formerly known as REST Superman. Fire thousands of HTTP requests and aggregate responses in a couple of clicks in seconds. Please check detail instructions, screenshots, documentations, sample code, REST APIs, and demos at www.restcommander.com and its demo video. What's new? Check related work review on efficient HTTP clients and concurrency and throttling model in Akka at eBay tech blog. REST Commander is a fast parallel async HTTP/REST/SOAP client as a service to monitor and manage 10,000s of web servers. Sends requests to 1000 servers with response aggregation in 10 seconds. or 10,000 servers in 50 seconds.

armeria - Asynchronous RPC/REST library built on top of Java 8, Netty, HTTP/2, Thrift and gRPC

  •    Java

Visit the official web site for more information.Armeria is an open-source asynchronous RPC/API client/server library built on top of Java 8, Netty 4.1, HTTP/2, Thrift and gRPC. Its primary goal is to help engineers build high-performance asynchronous microservices that use HTTP/2 as a session layer protocol.

Redisson - Redis based In-Memory Data Grid for Java

  •    Java

Redisson - distributed Java objects and services (Set, Multimap, SortedSet, Map, List, Queue, BlockingQueue, Deque, BlockingDeque, Semaphore, Lock, AtomicLong, Map Reduce, Publish / Subscribe, Bloom filter, Spring Cache, Executor service, Tomcat Session Manager, Scheduler service, JCache API) on top of Redis server. Rich Redis client.

restbed - Corvusoft's Restbed framework brings asynchronous RESTful functionality to C++11 applications

  •    C++

Restbed is a comprehensive and consistent programming model for building applications that require seamless and secure communication over HTTP, with the ability to model a range of business processes, designed to target mobile, tablet, desktop and embedded production environments. More in-depth examples can be found here. To see Restbed used in anger, please visit Corvusoft's RestQ project.

akka.net - Port of Akka actors for .NET

  •    CSharp

Akka.NET is a community-driven port of the popular Java/Scala framework Akka to .NET.If you are interested in helping porting Akka to .NET please take a look at Contributing to Akka.NET.

ddd-leaven-akka-v2 - Sample e-commerce system #Microservices #Akka #Reactive-DDD #CQRS

  •    Scala

Sample e-commerce application built on top of Akka and EventStore following a CQRS/DDDD-based approach.

akka-ddd - Akka CQRS/ES framework

  •    Scala

Akka-DDD is a framework for building distributed services following DDD/CQRS/ES architecture on top of the Akka platform. Thanks to the pluggable architecture of the Akka-Persistence, Akka-DDD is not tied to any particular event journal provider. The services are built as actor systems. Different services can be distributed in the same cluster (Akka cluster) or can be deployed to independent clusters.

xitrum - Async and clustered Scala web framework and HTTP(S) server

  •    Scala

Please see Xitrum home page for more details. Xitrum is an async and clustered Scala web framework on top of Netty, Akka, and Hazelcast. It also has a fast built-in HTTP(S) server.