All Projects → twitter → Finatra

twitter / Finatra

Licence: apache-2.0
Fast, testable, Scala services built on TwitterServer and Finagle

Programming Languages

scala
5932 projects
Starlark
911 projects
java
68154 projects - #9 most used programming language
Thrift
134 projects
shell
77523 projects
Mustache
554 projects

Projects that are alternatives of or similar to Finatra

Deep Framework
Full-stack JavaScript Framework for Cloud-Native Web Applications (perfect for Serverless use cases)
Stars: ✭ 533 (-74.93%)
Mutual labels:  microservices, framework
Finagle
A fault tolerant, protocol-agnostic RPC system
Stars: ✭ 8,126 (+282.22%)
Mutual labels:  thrift, finagle
Microservices Framework Benchmark
Raw benchmarks on throughput, latency and transfer of Hello World on popular microservices frameworks
Stars: ✭ 615 (-71.07%)
Mutual labels:  microservices, framework
Eventhus
Go - CQRS / Event Sourcing made easy - Go
Stars: ✭ 350 (-83.54%)
Mutual labels:  microservices, framework
Micro
Micro is a distributed cloud operating system
Stars: ✭ 10,778 (+406.96%)
Mutual labels:  microservices, framework
Nameko
Python framework for building microservices
Stars: ✭ 4,182 (+96.71%)
Mutual labels:  microservices, framework
Servicetalk
A networking framework that evolves with your application
Stars: ✭ 656 (-69.14%)
Mutual labels:  microservices, framework
dodo
The Twitter OSS Project Builder
Stars: ✭ 25 (-98.82%)
Mutual labels:  finagle, twitter-server
Qiankun
📦 🚀 Blazing fast, simple and complete solution for micro frontends.
Stars: ✭ 11,497 (+440.78%)
Mutual labels:  microservices, framework
Pysoa
A Python library for writing (micro)services and their clients
Stars: ✭ 74 (-96.52%)
Mutual labels:  microservices, framework
Restana
Super fast and minimalist framework for building REST micro-services.
Stars: ✭ 341 (-83.96%)
Mutual labels:  microservices, framework
Framework
Repositório principal contendo o Core e Extensions: JPA, Security, WS
Stars: ✭ 124 (-94.17%)
Mutual labels:  microservices, framework
Armeria
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.
Stars: ✭ 3,392 (+59.55%)
Mutual labels:  microservices, thrift
Izumi
Productivity-oriented collection of lightweight fancy stuff for Scala toolchain
Stars: ✭ 423 (-80.1%)
Mutual labels:  framework, slf4j
Yarpc Go
A message passing platform for Go
Stars: ✭ 285 (-86.59%)
Mutual labels:  microservices, thrift
Phpboot
☕️ 🚀 tiny & fast PHP framework for building Microservices/RESTful APIs, with useful features: IOC, Hook, ORM, RPC, Swagger, Annotation, Parameters binding, Validation, etc.
Stars: ✭ 638 (-69.99%)
Mutual labels:  microservices, framework
herald
Log annotation for logging frameworks
Stars: ✭ 71 (-96.66%)
Mutual labels:  slf4j, guice
RPC reactive
Examples and explanations of how RPC systems works.
Stars: ✭ 25 (-98.82%)
Mutual labels:  thrift, finagle
Falcon
The no-nonsense REST API and microservices framework for Python developers, with a focus on reliability, correctness, and performance at scale.
Stars: ✭ 8,654 (+307.06%)
Mutual labels:  microservices, framework
Nest
A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications on top of TypeScript & JavaScript (ES6, ES7, ES8) 🚀
Stars: ✭ 42,981 (+1921.68%)
Mutual labels:  microservices, framework

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 Logo

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

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.

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

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 the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].