ppx_deriving VS reason

Compare ppx_deriving vs reason and see what are their differences.

ppx_deriving

Type-driven code generation for OCaml (by ocaml-ppx)

reason

Simple, fast & type safe code that leverages the JavaScript & OCaml ecosystems (by reasonml)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
ppx_deriving reason
7 44
441 10,056
0.5% 0.1%
7.0 5.8
12 days ago 2 months ago
OCaml OCaml
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

ppx_deriving

Posts with mentions or reviews of ppx_deriving. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-04-25.
  • My Thoughts on OCaml
    11 projects | news.ycombinator.com | 25 Apr 2023
    > You gave a beautiful answer about programming language

    You do the same thing as in Rust, Scala or Haskell and derive the printer [1]. Then at the callsite, if you know the type then you do `T.show` to print it or `T.eq`. If you don't know the type, then you pass it in at the top level as a module and then do `T.show` or `T.eq`.

    > Or to convert one type into another type?

    If you want to convert a type, then you have a type that you want to convert from such as foo and bar, then you do `Foo.to_bar value`.

    We can keep going, but you can get the point.

    You _can't_ judge a language by doing what you want to do with one language in another. If I judge Rust by writing recursive data structures and complaining about performance and verbosity that's not particularly fair correct? I can't say that Dart is terrible for desktop because I can't use chrome developer tools on its canvas output and ignore it's hot-reloading server. I can't say Common Lisp code is unreadable because I don't have type annotations and ignore the REPL for introspection.

    [1] https://github.com/ocaml-ppx/ppx_deriving

  • Is rust serde unique?
    6 projects | /r/rust | 19 Apr 2023
    Ocaml has the amazing ppx_deriving which can be used for serialization / deserialization in various formats.
  • Question on type declaration syntax
    2 projects | /r/ocaml | 17 Apr 2023
    I wrote a CLI tool and I'd like to produce statically linked binaries of my tool. However, I cannot do this because I'm using the ppx_deriving deriving preprocessor, and I cannot produce a statically linked executable while using this package.
  • OCaml at First Glance
    5 projects | news.ycombinator.com | 29 Aug 2022
    Not great, not terrible; the language supports annotations which mean nothing to the compiler but which pre-processors can take advantage of, and there is a framework called ppx which you can use to write your own preprocessor. There exist many pre-processors to do things like add inline tests, generate getter/setter/pretty-printing functions, and so on. Here is an example:

    https://github.com/ocaml-ppx/ppx_deriving

  • Bad documentation of Jane Street libraries
    3 projects | /r/ocaml | 23 Mar 2022
    is from https://github.com/ocaml-ppx/ppx_deriving
  • Recommended method for pretty-printing collections in Core?
    2 projects | /r/ocaml | 9 Oct 2021
    Have you tried to derive a print function using https://github.com/ocaml-ppx/ppx_deriving
  • How do I define ordering for my sum types?
    1 project | /r/ocaml | 27 Apr 2021
    However, there is a ppx (a pre-processor) which can do the job : ppx_deriving. You just have to anotate your type in oder to get the compare function automatically generated :

reason

Posts with mentions or reviews of reason. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-29.
  • Learning Elm by porting a medium-sized web front end from React (2019)
    15 projects | news.ycombinator.com | 29 Feb 2024
  • Melange for React devs book, alpha release
    2 projects | news.ycombinator.com | 27 Feb 2024
    Hey HN, at Ahrefs we have been working on an online book that hopefully helps React developers get up and running with Melange, an OCaml to JavaScript compiler. You can read more about Melange here: https://melange.re/.

    There are still a few chapters that we'd like to add before considering it "complete", but it might be already helpful for some folks out there, that's why we decided to publish it early.

    The book uses Reason syntax to implement React components using ReasonReact components. You can read more about both in:

    https://reasonml.github.io/

  • ReScript: Rust like features for JavaScript
    2 projects | dev.to | 18 Jan 2024
    ReScript is "Fast, Simple, Fully Typed JavaScript from the Future". What that means is that ReScript has a lightning fast compiler, an easy to learn JS like syntax, strong static types, with amazing features like pattern matching and variant types. Until 2020 it was called "BuckleScript" and is closely related to ReasonML.
  • Ask HN: Interest in a Rust-Inspired Language Compiling to JavaScript?
    5 projects | news.ycombinator.com | 24 Dec 2023
  • Earning the privilege to work on unoriginal problems
    2 projects | news.ycombinator.com | 28 Aug 2023
    This tracks with how I've seen "normal" languages converge on similar, flawed imitations of better type systems through tools and repurposed syntax. Thank you for confirming.

    Do you have any recommendations or warnings regarding general languages which reach in the opposite direction? Reason[1] and F#[2] are both examples: they attach pre-existing ecosystems and compile-for-$PLATFORM tools to OCaml-like typing.

    OCaml itself is also intriguing for personal projects. However, I'm worried the "GPL" in its standard library's LGPL license might scare people despite both the linking exception and Jane Street's MIT alternative.

    1. https://reasonml.github.io/

  • Melange 1.0: Compile OCaml / ReasonML to JavaScript
    3 projects | news.ycombinator.com | 12 Jun 2023
    ReasonML purely as a syntax layer on top of OCaml is still being updated and released[1]. Incidentally, I'm one of the maintainers of that project too :-)

    With this Melange release, we're hoping to somewhat revive ReasonML and channel some folks back to the community from the perspective of a vertically integrated platform that has seen major investment in the past few years.

    [1]: https://github.com/reasonml/reason

  • VN Compiler. Why using Fable is too difficult. (Pt. 1)
    1 project | /r/fsharp | 14 May 2023
    Why not use https://reasonml.github.io/ instead? Or just use Typescript?
  • My Thoughts on OCaml
    11 projects | news.ycombinator.com | 25 Apr 2023
    Quieted down, but I depend on projects with worst graphs:

    https://github.com/reasonml/reason/graphs/contributors

  • why
    3 projects | /r/ProgrammerHumor | 9 Mar 2023
    There is also reasonml for Web development.
  • Por que Elm é uma linguagem tão deliciosa?
    11 projects | dev.to | 28 Feb 2023

What are some alternatives?

When comparing ppx_deriving and reason you can also consider the following projects:

deriving-show-simple

purescript - A strongly-typed language that compiles to JavaScript

ppx_jane - Standard Jane Street ppx rewriters

rescript-compiler - The compiler for ReScript.

ppx_sexp_conv - Generation of S-expression conversion functions from type definitions

melange - A mixture of tooling combined to produce JavaScript from OCaml & Reason

json-serde - Example of usage antlr4 and shapeless

js_of_ocaml - Compiler from OCaml to Javascript.

generic-data - Generic data types in Haskell, utilities for GHC.Generics

ocamlformat - Auto-formatter for OCaml code

goderive - Derives and generates mundane golang functions that you do not want to maintain yourself

refterm - Reference monospace terminal renderer