Skip to content

Instantly share code, notes, and snippets.

@rossabaker
rossabaker / SixteenElements.scala
Created October 21, 2018 01:56 — forked from lbialy/SixteenElements.scala
Problem with AHC-based client in http4s
import cats.effect.{Effect, IO}
import cats.syntax.flatMap.toFlatMapOps
import cats.syntax.functor.toFunctorOps
import fs2.StreamApp.ExitCode
import fs2.{Pipe, Scheduler, Stream, StreamApp}
import io.circe.Json
import io.circe.jawn.CirceSupportParser
import jawn.Facade
import jawnfs2._
import org.http4s.client.Client
........................... .....~+,...,?7M7~....... ..........................
....................... ....,,...,,=:::~.,~, . ...=?.=,.........................
..................., ,.:::.. .+~~+?~,:,,?II.,,~:IOI7Z~=,........................
................. .?8IZDNNMMM8NDNMMNNNN87~$DD8I$: .,:,:N:.......................
................,,=78$88MMMNNMMMMMMNDDNMMMMNMDMN8D8Z+87~+.,.....................
...............,,II88DNN8D8ZZODMNND8DNDNMMMMMMNDND87888$+,......................
............,~~+88ODDNM88$?~~=+7ODNDD8?7ONMMMMMMNNM8OZD8Z?......................
............,?IZD8NNNMNDOI~~:=~+ZMZ7ON~=+?DDNMNNMDDDNMZZI=?.,...................
............+=OO88D:DM887+:~,,,,=7O?~ID$$=DDNM$ONMMNMDI?78+,.,..................
@rossabaker
rossabaker / keybase.md
Created April 18, 2018 18:43
keybase.md

Keybase proof

I hereby claim:

  • I am rossabaker on github.
  • I am rossabaker (https://keybase.io/rossabaker) on keybase.
  • I have a public key ASAv9ds4uwpeu_Nwa0x4kk60e68SsbLXmWeUso0i5uKLrgo

To claim this, I am signing this object:

(require 'lsp-mode)
(lsp-define-stdio-client
;; This can be a symbol of your choosing. It will be used as a the
;; prefix for a dynamically generated function "-enable"; in this
;; case: lsp-prog-major-mode-enable
lsp-scala
"scala"
;; This will be used to report a project's root directory to the LSP
;; server.
(lambda () "/home/ross/src/http4s")
import cats._
import cats.arrow.Choice
case class Kleisli[F[_], A, B](run: A => F[B]) {
def apply(a: A): F[B] = run(a)
def andThen[C](k: Kleisli[F, B, C])(implicit F: FlatMap[F]): Kleisli[F, A, C] = { val _ = (k, F); ??? }
def andThen[C](f: B => F[C])(implicit F: FlatMap[F]): Kleisli[F, A, C] = { val _ = (f, F); ??? }
def compose[Z](k: Kleisli[F, Z, A])(implicit F: FlatMap[F]): Kleisli[F, Z, B] = { val _ = (k, F); ??? }
def local[AA](f: AA => A): Kleisli[F, AA, B] = { val _ = f; ??? }
def map[C](f: B => C): Kleisli[F, A, C] = { val _ = f; ??? }
import cats._
import cats.arrow.Choice
case class Kleisli[F[_], A, B](run: A => F[B]) {
def apply(a: A): F[B] = run(a)
def andThen[C](k: Kleisli[F, B, C])(implicit F: FlatMap[F]): Kleisli[F, A, C] = { val _ = (k, F); ??? }
def andThen[C](f: B => F[C])(implicit F: FlatMap[F]): Kleisli[F, A, C] = { val _ = (f, F); ??? }
def compose[Z](k: Kleisli[F, Z, A])(implicit F: FlatMap[F]): Kleisli[F, Z, B] = { val _ = (k, F); ??? }
def local[AA](f: AA => A): Kleisli[F, AA, B] = { val _ = f; ??? }
def map[C](f: B => C): Kleisli[F, A, C] = { val _ = f; ??? }
import cats.data.{Kleisli, OptionT}
import cats.implicits._
import cats.effect._
import org.http4s._, Method._, Status._
object Strawman extends App {
type Http[F[_]] = Kleisli[F, Request[F], Response[F]]
type HttpT[G[_[_], _], F[_]] = Kleisli[G[F, ?], Request[F], Response[F]]
type HttpPartial[F[_]] = HttpT[OptionT, F]
import scalaz.concurrent._
import scalaz.stream._
import scalaz.std.vector._
object Unfold extends App {
val data = Stream.from(0).take(42).toVector
def query(offset: Int, limit: Int) =
Task.delay {
println(s"Querying from offset $offset with limit $limit")
fs2-0.9 Compress.fs2Gzip N/A thrpt 20 62.619 ± 1.541 ops/s
fs2-1.0 Compress.fs2Gzip N/A thrpt 20 122.727 ± 1.734 ops/s
fs2-0.9 Compress.fs2GzipGunzip N/A thrpt 20 27.043 ± 0.394 ops/s
fs2-1.0 Compress.fs2GzipGunzip N/A thrpt 20 40.028 ± 0.293 ops/s
fs2-0.9 Compress.fs2NoIo N/A thrpt 20 44.963 ± 1.130 ops/s
fs2-1.0 Compress.fs2NoIo N/A thrpt 20 44.056 ± 0.395 ops/s
fs2-0.9 Compress.fs2Text N/A thrpt 20 160.278 ± 27.128 ops/s
fs2-1.0 Compress.fs2Text N/A thrpt 20 155.554 ± 25.263 ops/s
fs2-0.9 Cp.fs2Async N/A thrpt 20 67.619 ± 3.389 ops/s
fs2-1.0 Cp.fs2Async N/A thrpt 20 113.905 ± 3.868 ops/s
package org.http4s
package bench
import java.util.concurrent.TimeUnit
import org.openjdk.jmh.annotations._
@State(Scope.Benchmark)
@Fork(1)
@Measurement(iterations = 10)