finatra

Fast, testable, Scala services built on Twitter-Server and Finagle

Github星跟踪图

Finatra

Build Status
Test Coverage
Project status
Maven Central
Gitter

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

Features

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._

@Singleton
class ExampleThriftController 
  extends Controller
  with MyThriftService.BaseServiceIface {
  
  override val myFunction = handle(MyFunction) { args: 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 master branch in Github tracks the latest stable release, which is currently:

Maven Central

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 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.

For more information on providing contributions, please see our CONTRIBUTING.md documentation.

Presentations

Check out our list of presentations: Finatra Presentations.

Authors

A full list of contributors can be found on GitHub.

Follow @finatra on Twitter for updates.

License

Copyright 2013-2019 Twitter, Inc.

Licensed under the Apache License, Version 2.0: https://www.apache.org/licenses/LICENSE-2.0

概览

名称与所有者twitter/finatra
主编程语言Scala
编程语言Shell (语言数: 7)
平台
许可证Apache License 2.0
发布数129
最新版本名称finatra-23.11.0 (发布于 )
第一版名称finatra-0.0.1 (发布于 2012-07-12 11:34:43)
创建于2012-02-16 23:55:29
推送于2024-02-09 17:19:09
最后一次提交
星数2.3k
关注者数214
派生数406
提交数2.7k
已启用问题?
问题数322
打开的问题数13
拉请求数72
打开的拉请求数1
关闭的拉请求数193
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?
去到顶部