Finatra alternatives and similar packages
Based on the "Web Frameworks" category.
Alternatively, view Finatra alternatives based on common mentions on social networks and blogs.
-
Skinny Framework
:monorail: "Scala on Rails" - A full-stack web app framework for rapid development in Scala -
youi
Next generation user interface and application development in Scala and Scala.js for web, mobile, and desktop.
InfluxDB - Power Real-Time Data Analytics at Scale
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Finatra or a related project?
Popular Comparisons
README
Finatra
Status
This project is used in production at Twitter (and many other organizations), and is being actively developed and maintained.
Finatra is a lightweight framework for building fast, testable, scala applications on top of TwitterServer and Finagle. Finatra provides an easy-to-use API for creating and testing Finagle servers and apps as well as powerful JSON support, modern logging via SLF4J, Finagle client utilities, and more.
Getting involved
- Website: https://twitter.github.io/finatra/
- Latest news: Blog
- Github Source: https://github.com/twitter/finatra/
- Gitter: https://gitter.im/twitter/finatra
- Mailing List: [email protected]
Features
- Production use @Twitter.
- ~50 times faster than v1.6 in several benchmarks.
- Powerful Feature and Integration test support.
- Optional JSR-330 Dependency Injection using Google Guice.
- Jackson-based JSON parsing supporting required fields, default values, and validations.
- Logback MDC integration with com.twitter.util.Local for contextual logging across futures.
Documentation
To get started, see the Getting Started section of our User Guide to get up and running. Or check out the specific sections for building HTTP or Thrift servers.
Examples
An HTTP controller and server:
import com.twitter.finatra.http._
@Singleton
class ExampleController extends Controller {
get("/") { request: Request =>
"<h1>Hello, world!</h1>"
}
}
import com.twitter.finatra.http._
class ExampleServer extends HttpServer {
override def configureHttp(router: HttpRouter): Unit = {
router
.filter[CommonFilters]
.add[ExampleController]
}
}
A Thrift controller and server:
import com.twitter.finatra.thrift._
import com.twitter.scrooge.{Request, Response}
@Singleton
class ExampleThriftController
extends Controller(MyThriftService) {
handle(MyFunction).withFn { request: Request[MyFunction.Args] =>
...
}
}
import com.twitter.finatra.thrift._
class ExampleServer extends ThriftServer {
override def configureThrift(router: ThriftRouter): Unit = {
router
.add[ExampleThriftController]
}
}
Example Projects
Finatra includes working examples which highlight various features of the framework and include tests. These examples are included in the root sbt build and are thus buildable as part of the entire project.
Please take a look through the examples for more detailed information on features, testing, building, and running.
Latest version
The release branch in Github tracks the latest stable release, which is currently:
available on Maven Central. See the First Steps section in the User Guide for how to add dependencies.
Releases are done on an approximately monthly schedule. While semver is not followed, the [changelogs](CHANGELOG.rst) are detailed and include sections on public API breaks and changes in runtime behavior.
Development version
The develop branch in Github tracks the latest code which is updated every week. If you want to contribute a patch or fix, please use this branch as the basis of your Pull Request.
We feel that a welcoming community is important and we ask that you follow Twitter's Open Source Code of Conduct in all interactions with the community. For more information on providing contributions, please see our CONTRIBUTING.md documentation.
Presentations
Check out our list of presentations: Finatra Presentations.
Authors
- Steve Cosenza https://github.com/scosenza
- Christopher Coco https://github.com/cacoco
A full list of contributors can be found on GitHub.
Follow @finatra on Twitter for updates.
License
Copyright 2013 Twitter, Inc.
Licensed under the Apache License, Version 2.0: https://www.apache.org/licenses/LICENSE-2.0
*Note that all licence references and agreements mentioned in the Finatra README section above
are relevant to that project's source code only.