All Projects → clovellytech → http4s-modules

clovellytech / http4s-modules

Licence: MIT license
Web modules built on Http4s

Programming Languages

scala
5932 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to http4s-modules

typelevel-stack.g8
📚 Unofficial Giter8 template for the Typelevel Stack (Http4s / Doobie / Circe / Cats Effect / Fs2) based on Cats v1.x.x
Stars: ✭ 63 (+103.23%)
Mutual labels:  typelevel, http4s, circe, doobie
http4s-dom
http4s, in a browser near you
Stars: ✭ 13 (-58.06%)
Mutual labels:  typelevel, http4s
free-monads-functional-web-apps
Delving into Free Monads and using them to write pure functional web applications
Stars: ✭ 18 (-41.94%)
Mutual labels:  http4s, circe
scala-functional-programming-tutorial
Functional Programming in Scala Tutorial
Stars: ✭ 23 (-25.81%)
Mutual labels:  http4s, circe
tamer
Standalone alternatives to Kafka Connect Connectors
Stars: ✭ 42 (+35.48%)
Mutual labels:  doobie
classy-optics
🔎 Source code shown at my talks at Scale by the Bay 2018 and Scalar 2019
Stars: ✭ 25 (-19.35%)
Mutual labels:  http4s
telepooz
Functional Telegram Bot API wrapper for Scala on top of akka, circe, cats, and shapeless
Stars: ✭ 26 (-16.13%)
Mutual labels:  circe
http4s-poc-api
POC: http4s http api on zio
Stars: ✭ 34 (+9.68%)
Mutual labels:  http4s
kanadi
Kanadi is a Nakadi client for Scala
Stars: ✭ 20 (-35.48%)
Mutual labels:  circe
sbt-guardrail
Principled code generation from OpenAPI specifications
Stars: ✭ 24 (-22.58%)
Mutual labels:  http4s
facebook4s
An asynchronous non-blocking Scala client for Facebook Graph API (Facebook api REST)
Stars: ✭ 18 (-41.94%)
Mutual labels:  circe
http4s-laminar-stack
A complete example of a fullstack (I actually don't know what this means) Scala application, using http4s on the backend and Laminar and Scala.js on the frontend
Stars: ✭ 43 (+38.71%)
Mutual labels:  http4s
http4s-finagle
Http4s on Finagle Server or Client
Stars: ✭ 12 (-61.29%)
Mutual labels:  http4s
influencer-stats
Playground for measuring performance of functional programming tools in Scala. Gathers statistics about videos.
Stars: ✭ 24 (-22.58%)
Mutual labels:  http4s
sbt-org-policies
Just an SBT plugin that enforces some organizational policies and settings across all of your projects
Stars: ✭ 22 (-29.03%)
Mutual labels:  typelevel
scala-http4s-realworld-example-app
Example of a RealWorld app backend powered by Scala + http4s
Stars: ✭ 35 (+12.9%)
Mutual labels:  http4s
freecli
Command line parsing library using Free Applicative
Stars: ✭ 29 (-6.45%)
Mutual labels:  circe
general
Repository for general Typelevel information, activity and issues
Stars: ✭ 19 (-38.71%)
Mutual labels:  typelevel
scalapb-circe
Json/Protobuf convertors for ScalaPB use circe
Stars: ✭ 38 (+22.58%)
Mutual labels:  circe
fs2-data
streaming data parsing and transformation library
Stars: ✭ 103 (+232.26%)
Mutual labels:  circe

h4sm - Scala Http4s Modules Join the chat Build Status Sonatype Release

Create composable server modules with ease using Http4s, cats, Flyway, and PostgreSQL. Built for scala 2.12 and 2.13 and scalajs 1.0.

Basic Idea

To provide a library of production ready modules, complete with database schema, that can be composed and mounted as HttpServices. Modules included so far:

  • auth - A complete user authentication implementation using tsec. Bearer and stateless cookie authentication schemes are available.
  • features - An example library that allows users to submit feature requests and vote on features.
  • files - A complete file upload and retrieval module. Only local file storage is implemented so far. AWS or other backends can be added by providing a typeclass instance.
  • invitations - Add the ability for users to invite new users.
  • messages - Allow authenticated users to pass messages to each other if they know the other's user id.
  • permissions - Built on top of tsec-http4s, an easy way to create routes that are guarded by a user having certain permissions.
  • petstore - As a learning example, the scala-pet-store implemented with h4sm modules (not released)
  • store - A store with items and orders.
  • more to come! Something you would like to see here? Submit an issue!

See documentation here

Creating a module: See a start to finish implementation example

Contributors and Recognition

PRs and issues are so welcome on this project. Generally contributors don't have to be people that commit code or even write issues. Thanks especially to:

Try it out

An example project exists in /example-server, which aggregates all the modules into a single server. To run, execute exampleServerJVM/reStart in sbt.

Get Started

Add any of the following dependencies to your build.sbt. There are interdependencies too, so you may consult build.sbt to see which modules depend on which, and thus may not need to be declared in your build.sbt.

libraryDependencies ++= Seq(
	"h4sm-auth",
	"h4sm-features",
	"h4sm-files",
	"h4sm-invitations",
	"h4sm-store",
	"h4sm-messages",
	"h4sm-permissions"
).map("com.clovellytech" %% _ % h4smVersion)

Scalajs Clients

Clients are prebuilt for several modules. You can include them in your scalajs projects as:

libraryDependencies ++= Seq(
    "h4sm-auth-client",
    "h4sm-features-client",
).map("com.clovellytech" %%% _ % h4smVersion)
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].