Shapeless alternatives and similar packages
Based on the "Extensions" category.
Alternatively, view Shapeless alternatives based on common mentions on social networks and blogs.
cats9.7 8.9 Shapeless VS catsLightweight, modular, and extensible library for functional programming.
Scalaz9.6 9.2 Shapeless VS ScalazPrincipled Functional Programming in Scala
Twitter Util9.4 7.7 Shapeless VS Twitter UtilWonderful reusable code from Twitter
Ammonite-Ops9.2 9.1 Shapeless VS Ammonite-OpsScala Scripting
Monocle8.7 5.7 Shapeless VS MonocleOptics library for Scala
refined8.6 8.4 Shapeless VS refinedRefinement types for Scala
Scalactic8.6 9.0 Shapeless VS ScalacticA testing tool for Scala and Java developers
better-files8.5 0.0 Shapeless VS better-filesSimple, safe and intuitive Scala I/O
Cassovary8.5 0.0 Shapeless VS CassovaryCassovary is a simple big graph processing library for the JVM
scala.meta8.4 9.6 Shapeless VS scala.metaLibrary to read, analyze, transform and generate Scala programs
Enumeratum8.3 3.1 Shapeless VS EnumeratumA type-safe, reflection-free, powerful enumeration implementation for Scala with exhaustive pattern match warnings and helpful integrations.
Scala Async8.2 7.6 Shapeless VS Scala AsyncAn asynchronous programming facility for Scala
Scala-Logging7.9 6.6 Shapeless VS Scala-LoggingConvenient and performant logging library for Scala wrapping SLF4J.
Simulacrum7.7 5.3 Shapeless VS SimulacrumFirst class syntax support for type classes in Scala
Chimney7.7 9.1 Shapeless VS ChimneyScala library for boilerplate-free, type-safe data transformations
n-scala7.6 9.0 Shapeless VS n-scalaA new Scala wrapper for Joda Time based on scala-time
Quicklens7.4 8.8 Shapeless VS QuicklensModify deeply nested case class fields
Freestyle7.0 0.0 Shapeless VS FreestyleA cohesive & pragmatic framework of FP centric Scala libraries
Scala Graph6.8 8.1 Shapeless VS Scala GraphGraph for Scala is intended to provide basic graph functionality seamlessly fitting into the Scala Collection Library. Like the well known members of scala.collection, Graph for Scala is an in-memory graph library aiming at editing and traversing graphs, finding cycles etc. in a user-friendly way.
tinylog6.8 8.8 L2 Shapeless VS tinylogtinylog is a lightweight logging framework for Java, Kotlin, Scala, and Android
Eff6.7 9.0 Shapeless VS EffEff monad for cats - https://atnos-org.github.io/eff
scribe6.1 7.6 Shapeless VS scribeThe fastest logging library in the world. Built from scratch in Scala and programmatically configurable.
LArray6.1 0.0 Shapeless VS LArrayLarge off-heap arrays and mmap files for Scala and Java
Each5.4 0.0 Shapeless VS EachA macro library that converts native imperative syntax to scalaz's monadic expressions
Hamsters5.4 0.0 Shapeless VS HamstersA mini Scala utility library
Rapture4.9 0.0 Shapeless VS Rapturea collection of libraries for common, everyday programming tasks (I/O, JSON, i18n, etc.)
Stateless Future4.8 0.0 Shapeless VS Stateless FutureAsynchronous programming in fully featured Scala syntax.
Scala Blitz4.7 0.0 Shapeless VS Scala BlitzScala framework for efficient sequential and data-parallel collections -
Squid4.5 1.2 Shapeless VS SquidSquid – type-safe metaprogramming and compilation framework for Scala
Records for Scala4.3 0.0 Shapeless VS Records for ScalaLabeled records for Scala based on structural refinement types and macros.
Log4s4.3 2.1 Shapeless VS Log4sHigh-performance SLF4J wrapper for Scala.
chronoscala4.1 5.4 Shapeless VS chronoscalaA JSR-310 port of nscala_time
Sauron4.1 0.0 Shapeless VS SauronYet another Scala lens macro
Play monadic actionsA simple scala DSL to allow clean and monadic style for Play! Actions
enableIf.scala3.3 0.0 Shapeless VS enableIf.scalaA library that toggles Scala code at compile-time, like #if in C/C++
Lamma3.2 0.0 Shapeless VS LammaLamma schedule generator for Scala is a professional schedule generation library for periodic schedules like fixed income coupon payment, equity deravitive fixing date generation etc.
Freasy Monad3.2 0.0 Shapeless VS Freasy MonadEasy way to create Free Monad using Scala macros with first-class Intellij support.
wvlet-log2.3 0.0 Shapeless VS wvlet-logA library for enhancing your application logs with colors and source code locations.
Persist-Logging2.2 0.0 Shapeless VS Persist-LoggingScala Logging Library
Freedsl2.1 0.0 Shapeless VS FreedslPractical effect composition library based on abstract wrapping type and the free monad
Resolvable2.1 0.0 Shapeless VS ResolvableA library to optimize fetching immutable data structures from several endpoints in several formats.
pico-event1.4 0.0 Shapeless VS pico-eventTiny publish subscribe library
idid1.1 0.0 Shapeless VS ididA common interface for different Id types
ONLYOFFICE Docs — document collaboration in your environment
* 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 Shapeless or a related project?
shapeless: generic programming for Scala
shapeless is a type class and dependent type based generic programming library for Scala. It had its origins in several talks by Miles Sabin (@milessabin), given over the course of 2011, on implementing scrap your boilerplate and higher rank polymorphism in Scala. Since then it has evolved from being a resolutely experimental project into a library which, while still testing the limits of what's possible in Scala, is being used widely in production systems wherever there are arities to be abstracted over and boilerplate to be scrapped.
Projects which use shapeless
There is a wide variety of projects which use shapeless in one way or another ... see the incomplete list of projects for ideas and inspiration. If you are using shapeless and your project isn't listed yet, please add it.
Finding out more about the project
The feature overview for shapeless-2.0.0 provides a very incomplete introduction to shapeless. Additional information can be found in subsequent release notes. If you are upgrading from shapeless-2.0.0 you will find the migration guide useful. We're not satisfied with the current state of the documentation and would love help in improving it. You can find an excellent guide to Shapeless here: The Type Astronaut's Guide to Shapeless.
shapeless is part of the Typelevel family of projects. It is an Open Source project under the Apache License v2, hosted on github. Binary artefacts are published to the Sonatype OSS Repository Hosting service and synced to Maven Central.
Most discussion of shapeless and generic programming in Scala happens on the #shapless channel of the Typelevel Discord. There is also a mailing list and Gitter, but these are largely dormant now that most activity has moved to Discord. Questions about shapeless are often asked and answered under the shapeless tag on StackOverflow. Some articles on the implementation techniques can be found on Miles's blog, and Olivera, Moors and Odersky, Type Classes as Object and Implicits is useful background material.
The shapeless project supports the Scala Code of Conduct and wants all of its channels (mailing list, Gitter, IRC, github, etc.) to be welcoming environments for everyone.
Whilst shapeless is a somewhat "advanced" Scala library, it is a lot more approachable than many people think. Contributors are usually available to field questions, give advice and discuss ideas on the #shapeless Discord channel, and for people wanting to take their first steps at contributing we have a selection of open issues flagged up as being good candidates to take on. No contribution is too small, and guidance is always available.
Binary release artefacts are published to the Sonatype OSS Repository Hosting service and synced to Maven Central. Snapshots of the main branch are built using GitHub actions and automatically published to the Sonatype OSS Snapshot repository.
Try shapeless with an Ammonite instant REPL
The quickest way to get to a REPL prompt with the latest version of shapeless on the class path is to run the provided "try shapeless" script, which has no dependencies other than an installed JDK. This script downloads and installs coursier and uses it to fetch the Ammonite REPL and the latest version of shapeless. It then drops you immediately into a REPL session,
% curl -s https://raw.githubusercontent.com/milessabin/shapeless/main/scripts/try-shapeless.sh | bash Loading... Compiling (synthetic)/ammonite/predef/interpBridge.sc Compiling (synthetic)/ammonite/predef/replBridge.sc Compiling (synthetic)/ammonite/predef/DefaultPredef.sc Compiling /home/miles/projects/shapeless/(console) Welcome to the Ammonite Repl 1.6.8 (Scala 2.13.1 Java 1.8.0_212) If you like Ammonite, please support our development at www.patreon.com/lihaoyi @ 23 :: "foo" :: true :: HNil res0: Int :: String :: Boolean :: HNil = 23 :: "foo" :: true :: HNil @ Bye! %
shapeless-2.3.3 with SBT
To include the Sonatype repositories in your SBT build you should add,
resolvers ++= Seq( Resolver.sonatypeRepo("releases"), Resolver.sonatypeRepo("snapshots") )
Builds are available for Scala 2.11.x, 2.12.x and 2.13.x. The main line of development for shapeless 2.3.3 is Scala 2.13.2.
scalaVersion := "2.13.5" libraryDependencies ++= Seq( "com.chuusai" %% "shapeless" % "2.3.3" )
For using snapshots of Shapeless you should add,
scalaVersion := "2.13.5" libraryDependencies ++= Seq( "com.chuusai" %% "shapeless" % "2.4.0-SNAPSHOT" )
shapeless-2.3.3 with Maven
shapeless is also available for projects using the Maven build tool via the following dependency,
<dependency> <groupId>com.chuusai</groupId> <artifactId>shapeless_2.13</artifactId> <version>2.3.3</version> </dependency>
Please use a current release if possible. If unavoidable, you can find usage information for older releases on the shapeless wiki.
shapeless is built with SBT 1.3.10 or later, and its main branch is built with Scala 2.13.2 by default but also cross-builds for 2.11.12 and 2.12.12.
- Alex Zorab [email protected] @aleczorab
- Alessandro Lacava [email protected] @lambdista
- Alexander Konovalov [email protected] @alexknvl
- Alexandre Archambault [email protected] @alxarchambault
- Alistair Johnson [email protected] @AlistairUSM
- Allison H. [email protected]
- Alois Cochard [email protected] @aloiscochard
- Andreas Koestler [email protected] @AndreasKostler
- Andrew Brett [email protected] @Ephemerix
- Aristotelis Dossas [email protected] @teldosas
- Arya Irani [email protected] @aryairani
- Ben Hutchison [email protected] @ben_hutchison
- Ben James [email protected] @bmjames
- Brian McKenna [email protected] @puffnfresh
- Brian Zeligson [email protected] @beezee
- Bryn Keller [email protected] @brynkeller
- Carlos Quiroz @carlosmquiroz
- Chris Hodapp [email protected] @clhodapp
- Cody Allen [email protected] @fourierstrick
- Dale Wijnand [email protected] @dwijnand
- Daniel Urban [email protected]
- Dario Rexin [email protected] @evonox
- Dave Gurnell [email protected] @davegurnell
- David Barri [email protected] @japgolly
- Denis Mikhaylov [email protected] @notxcain
- Dmitry Kovalev [email protected]
- Eugene Burmako [email protected] @xeno_by
- Fabio Labella [email protected] @SystemFw
- Filipe Nepomuceno [email protected]
- Frank S. Thomas [email protected] @fst9000
- George Leontiev [email protected] @folone
- Georgi Krastev [email protected] @Joro_Kr
- Hamish Dickenson [email protected] @hamishdickson
- Harrison Houghton [email protected]
- Howard Branch [email protected] @purestgreen
- Huw Giddens [email protected]
- Hywel Andrews [email protected]
- Ievgen Garkusha [email protected]
- Jacob Barber [email protected] @jacoby6000
- Jason Zaugg [email protected] @retronym
- Jean-Baptiste Giraudeau [email protected] @jb9i
- Jean-Remi Desjardins [email protected] @jrdesjardins
- Jeff Martin [email protected]
- Jeff Wilde [email protected]
- Jeremy R. Smith [email protected] @jeremyrsmith
- Jisoo Park [email protected] @guersam
- Johannes Rudolph [email protected] @virtualvoid
- Johnny Everson [email protected] @johnny_everson
- Jolse Maginnis [email protected] @doolse2
- Joni Freeman [email protected] @jonifreeman
- Joseph Price [email protected]
- Juan José Vázquez Delgado [email protected] @juanjovazquez
- Julien Tournay [email protected] @skaalf
- Jules Gosnell
- Kailuo Wang [email protected] @kailuowang
- Kazuki Moriyama [email protected] @kazchimo
- Kenji Yoshida [email protected] @xuwei_k
- Kevin Wright [email protected] @thecoda
- Lars Hupel [email protected] @larsr_h
- Lukasz Golebiewski [email protected] @LukaszGobiewsk1
- Mario Pastorelli [email protected] @mapastr
- Matthew Taylor [email protected]
- Mathias Doenitz [email protected] @sirthias
- Michael Donaghy [email protected]
- Michael Pilquist [email protected] @mpilquist
- Michael Zuber [email protected] @mgzuber91
- Mike Limansky [email protected] @mike_limansky
- Miles Sabin [email protected] @milessabin
- n4to4 [email protected] @n4to4
- Neville Li [email protected] @sinisa_lyh
- Nikolas Evangelopoulos [email protected]
- Oleg Aleshko [email protected] @OlegYch
- Olivier Blanvillain [email protected]
- Olli Helenius [email protected] @ollijh
- Owein Reese [email protected] @OweinReese
- Paolo G. Giarrusso [email protected] @blaisorblade
- Pascal Voitot [email protected] @mandubian
- Pavel Chlupacek [email protected] @pacmanius
- Peter Neyens [email protected] @pneyens
- Peter Schmitz [email protected] @peterschmitz_
- Renato Cavalcanti [email protected] @renatocaval
- Rob Norris @tpolecat
- Robert Hensing [email protected]
- Ronan Michaux @ronan_michaux
- Ryadh Khsib [email protected]
- Ryo Hongo [email protected] @ryoppy516
- Sam Halliday [email protected] @fommil
- Sarah Gerweck [email protected] @SGerweck
- Sébastien Doeraene [email protected] @sjrdoeraene
- Simon Hafner [email protected] @reactormonk
- Stacy Curl [email protected] @stacycurl
- Stanislav Savulchik [email protected] @savulchik
- Stephen Compall [email protected] @S11001001
- Tin Pavlinic [email protected] @triggerNZ
- Tom Switzer [email protected] @tixxit
- Tomas Mikula [email protected] @tomas_mikula
- Travis Brown [email protected] @travisbrown
- Valentin Kasas [email protected] @ValentinKasas
- Valerian Barbot [email protected] @etaty
- Valy Diarrassouba [email protected]
- Vladimir Matveev [email protected] @netvlm
- Vladimir Pavkin [email protected] @vlpavkin
- William Harvey [email protected]
- Yang Bo (杨博) [email protected] @Atry
- Zainab Ali [email protected] @zainabali
*Note that all licence references and agreements mentioned in the Shapeless README section above are relevant to that project's source code only.