jaeswift-website/api/data/awesomelist/ocaml-community--awesome-ocaml.json

1 line
No EOL
38 KiB
JSON

{"slug": "ocaml-community--awesome-ocaml", "title": "Ocaml", "description": "A curated collection of awesome OCaml tools, frameworks, libraries and articles.", "github_url": "https://github.com/ocaml-community/awesome-ocaml", "stars": "3K", "tag": "Programming Languages", "entry_count": 253, "subcategory_count": 1, "subcategories": [{"name": "General", "parent": "", "entries": [{"name": "Community", "url": "#community", "description": ""}, {"name": "Algorithms and Data Structures", "url": "#algorithms-and-data-structures", "description": ""}, {"name": "Application Libraries", "url": "#application-libraries", "description": ""}, {"name": "Benchmarking", "url": "#benchmarking", "description": ""}, {"name": "Blogs", "url": "#blogs", "description": ""}, {"name": "Books", "url": "#books", "description": ""}, {"name": "Videos", "url": "#videos", "description": ""}, {"name": "Code Analysis and Linters", "url": "#code-analysis-and-linters", "description": ""}, {"name": "Compilers and Compiler Tools", "url": "#compilers-and-compiler-tools", "description": ""}, {"name": "Concurrency", "url": "#concurrency", "description": ""}, {"name": "Databases", "url": "#databases", "description": ""}, {"name": "Datetime", "url": "#datetime", "description": ""}, {"name": "Developer Tools", "url": "#developer-tools", "description": ""}, {"name": "Exercises and Short Examples", "url": "#exercises-and-short-examples", "description": ""}, {"name": "Formal Software Verification", "url": "#formal-software-verification", "description": ""}, {"name": "General", "url": "#general", "description": ""}, {"name": "Graphics", "url": "#graphics", "description": ""}, {"name": "Internationalization", "url": "#internationalization", "description": ""}, {"name": "User Interface", "url": "#user-interface", "description": ""}, {"name": "Language-related", "url": "#language-related", "description": ""}, {"name": "Large Source Code Examples", "url": "#large-source-code-examples", "description": ""}, {"name": "Logging", "url": "#logging", "description": ""}, {"name": "Machine Learning", "url": "#machine-learning", "description": ""}, {"name": "Messaging", "url": "#messaging", "description": ""}, {"name": "Metaprogramming", "url": "#metaprogramming", "description": ""}, {"name": "Metrics", "url": "#metrics", "description": ""}, {"name": "Mobile Applications", "url": "#mobile-applications", "description": ""}, {"name": "Networking", "url": "#networking", "description": ""}, {"name": "Online Courses", "url": "#online-courses", "description": ""}, {"name": "Package Management", "url": "#package-management", "description": ""}, {"name": "Parallelism", "url": "#parallelism", "description": ""}, {"name": "Project Starter Templates", "url": "#project-starter-templates", "description": ""}, {"name": "Printers helpers", "url": "#printers-helpers", "description": ""}, {"name": "Questions", "url": "#questions", "description": ""}, {"name": "Regular Expressions", "url": "#regular-expressions", "description": ""}, {"name": "Science and Technical Computing", "url": "#science-and-technical-computing", "description": ""}, {"name": "Security and Cryptography", "url": "#security-and-cryptography", "description": ""}, {"name": "Semantic Technology", "url": "#semantic-technology", "description": ""}, {"name": "Serialization", "url": "#serialization", "description": ""}, {"name": "System Programming", "url": "#system-programming", "description": ""}, {"name": "Testing", "url": "#testing", "description": ""}, {"name": "Utilities", "url": "#utilities", "description": ""}, {"name": "Web Development", "url": "#web-development", "description": ""}, {"name": "Official OCaml Website", "url": "https://ocaml.org/", "description": ""}, {"name": "OCaml Discourse Web Forum", "url": "https://discuss.ocaml.org/", "description": ""}, {"name": "OCaml Discord Chat", "url": "https://discord.gg/ZBgYuvR", "description": ""}, {"name": "Official OCaml Mailing List", "url": "https://inbox.ocaml.org/caml-list/", "description": ""}, {"name": "OCaml Planet", "url": "https://ocaml.org/community/planet/", "description": ""}, {"name": "OCaml SubReddit", "url": "https://www.reddit.com/r/ocaml/", "description": ""}, {"name": "Comparing a Machine Learning Algorithm Implemented in F# and OCaml", "url": "https://philtomson.github.io/blog/2014-05-29-comparing-a-machine-learning-algorithm-implemented-in-f-sharp-and-ocaml/", "description": ""}, {"name": "OCamlgraph", "url": "https://github.com/backtracking/ocamlgraph", "description": "A generic graph library for OCaml.", "stars": "244"}, {"name": "ods", "url": "https://github.com/owainlewis/ods", "description": "A large collection of data structures and algorithms for OCaml.", "stars": "51"}, {"name": "combine", "url": "https://github.com/backtracking/combine", "description": "OCaml library for combinatorics <https://www.lri.fr/~filliatr/combine/>.", "stars": "35"}, {"name": "Decompress", "url": "https://github.com/mirage/decompress", "description": "A pure OCaml implementation of Zlib.", "stars": "118"}, {"name": "Ke", "url": "https://github.com/mirage/ke", "description": "Fast implementation of queue (FIFO) in OCaml.", "stars": "51"}, {"name": "Duff", "url": "https://github.com/mirage/duff", "description": "Implementation of Rabin's fingerprint and delta compression by P. MacDonald in OCaml (same as [libXdiff](http://www.xmailserver.org/xdiff-lib.html)", "stars": "20"}, {"name": "ORaft", "url": "https://github.com/komamitsu/oraft", "description": "Library of [Raft consensus algorithm](https://raft.github.io/raft.pdf) implemented in OCaml", "stars": "30"}, {"name": "ODiff", "url": "https://github.com/dmtrKovalenko/odiff", "description": "Library of [YIQ NTSC transmission image difference alghoritm](http://www.progmat.uaem.mx:8080/artVol2Num2/Articulo3Vol2Num2.pdf) implemented in OCaml and ReasonML.", "stars": "2.7k"}, {"name": "Batteries Included", "url": "https://github.com/ocaml-batteries-team/batteries-included", "description": "A community-maintained foundation library for your OCaml projects.", "stars": "523"}, {"name": "Cmdliner", "url": "https://github.com/dbuenzli/cmdliner", "description": "Declarative definition of command line interfaces for OCaml.", "stars": "324"}, {"name": "Core", "url": "https://github.com/janestreet/core", "description": "Jane Street Capital's full-fledged standard library overlay. A portable subset of Core is also available: [Core\\_kernel (\u2b50219)](https://github.com/janestreet/core_kernel).", "stars": "1.2k"}, {"name": "Base", "url": "https://github.com/janestreet/base", "description": "Jane Street Capital's dependency-free, quick-compiling, fully-portable across any environment that can run OCaml code standard library.", "stars": "980"}, {"name": "React", "url": "http://erratique.ch/software/react", "description": "React is an OCaml module for functional reactive programming (FRP). It provides support for programs with time-varying values, declarative events, and signals."}, {"name": "Minicli", "url": "https://github.com/UnixJunkie/minicli", "description": "Minimalist library for command-line parsing.", "stars": "31"}, {"name": "easy-format", "url": "https://github.com/mjambon/easy-format", "description": "Pretty-printing library for OCaml.", "stars": "43"}, {"name": "ocaml-rpc", "url": "https://github.com/mirage/ocaml-rpc", "description": "Light library to deal with RPCs in OCaml.", "stars": "97"}, {"name": "ocaml-containers", "url": "https://github.com/c-cube/ocaml-containers", "description": "A lightweight, modular standard library extension, string library, and interfaces to various libraries (bigarrays, Unix, etc.) BSD license.", "stars": "513"}, {"name": "core\\_bench", "url": "https://github.com/janestreet/core_bench", "description": "Micro-benchmarking library for OCaml by Jane Street.", "stars": "54"}, {"name": "benchmark", "url": "https://github.com/Chris00/ocaml-benchmark", "description": "Benchmarking functions for measuring the run-time of functions using latency or throughput.", "stars": "32"}, {"name": "Gagallium", "url": "http://gallium.inria.fr/blog/", "description": ""}, {"name": "Type OCaml \u2013 Many things about OCaml", "url": "http://typeocaml.com/", "description": ""}, {"name": "OCaml Platform", "url": "https://opam.ocaml.org/blog/", "description": ""}, {"name": "Drup's Thingies", "url": "https://drup.github.io/", "description": ""}, {"name": "Thomas Letan\u2019s articles about OCaml", "url": "https://soap.coffee/~lthms/tags/ocaml.html", "description": ""}, {"name": "More OCaml: Algorithms, Methods, and Diversions", "url": "https://www.amazon.com/More-OCaml-Algorithms-Methods-Diversions/dp/0957671113/", "description": "In More OCaml, John Whitington takes a meandering tour of functional programming with OCaml, introducing various language features and describing some classic algorithms. The book ends with a large-scale example dealing with the production of PDF files. There are questions for each chapter, along with worked-out answers and hints."}, {"name": "How to Think Like a (Functional) Programmer", "url": "http://www.greenteapress.com/thinkocaml/index.html", "description": ""}, {"name": "OCaml from the Very Beginning", "url": "http://ocaml-book.com/", "description": ""}, {"name": "Pearls of Functional Algorithm Design", "url": "https://www.amazon.co.uk/Pearls-Functional-Algorithm-Design-Richard/dp/0521513383", "description": ""}, {"name": "Real World OCaml", "url": "https://realworldocaml.org/", "description": ""}, {"name": "Unix System Programming in OCaml", "url": "https://ocaml.github.io/ocamlunix/", "description": ""}, {"name": "Using, Understanding, and Unraveling OCaml", "url": "https://caml.inria.fr/pub/docs/u3-ocaml", "description": "This book describes both the OCaml language and the theoretical grounds behind its powerful type system."}, {"name": "Purely Functional Data Structures", "url": "https://www.amazon.co.uk/Purely-Functional-Structures-Chris-Okasaki/dp/0521631246/ref=sr_1_1?ie=UTF8\\&qid=1406279836\\&sr=8-1\\&keywords=functional+data+structures", "description": "This is the first or only book focus on various data structures in FP world. A must-read one."}, {"name": "OCaml for Scientists", "url": "http://www.ffconsultancy.com/products/ocaml_for_scientists/", "description": "by Jon Harrop."}, {"name": "OCaml Programming: Correct + Efficient + Beautiful", "url": "https://cs3110.github.io/textbook", "description": "Textbook on Functional Programming and Data Structures in OCaml - by Michael R. Clarkson et al."}, {"name": "Mascot", "url": "http://mascot.x9c.fr/", "description": "Mascot is a style-checker for OCaml sources."}, {"name": "pfff", "url": "https://github.com/returntocorp/pfff", "description": "pfff is a set of tools and APIs to perform some static analysis, dynamic analysis, code visualizations, code navigations, or style-preserving source-to-source transformations such as refactorings on source code.", "stars": "183"}, {"name": "Infer", "url": "https://github.com/facebook/infer", "description": "Infer is a static analyzer for Java, C and Objective-C", "stars": "15k"}, {"name": "Frama-C", "url": "http://frama-c.com", "description": "Frama-C is a static analysis and formal proof framework for C and C++."}, {"name": "flow", "url": "https://github.com/facebook/flow", "description": "flow is a static type checker for JavaScript.", "stars": "22k"}, {"name": "SLAyer", "url": "https://github.com/Microsoft/SLAyer", "description": "SLAyer is an automatic formal verification tool that uses separation logic to verify memory safety of C programs.", "stars": "325"}, {"name": "MemCAD", "url": "https://github.com/Antique-team/memcad", "description": "MemCAD is an abstract interpreter for shape analysis. MemCAD can verify C programs manipulating complex data structures.", "stars": "27"}, {"name": "Camelot", "url": "https://github.com/upenn-cis1xx/camelot", "description": "Camelot is a modular and fully configurable OCaml linter and stylechecker.", "stars": "45"}, {"name": "coq-of-ocaml", "url": "https://github.com/formal-land/coq-of-ocaml", "description": "Translator from OCaml to Coq to formally verify OCaml code.", "stars": "269"}, {"name": "MOPSA", "url": "https://gitlab.com/mopsa/mopsa-analyzer", "description": "MOPSA is a generic framework for building sound static analyzers based on the theory of abstract interpretation."}, {"name": "BAP", "url": "https://github.com/BinaryAnalysisPlatform/bap", "description": "BAP is a reverse engineering and program analysis platform that targets binary programs.", "stars": "2.2k"}, {"name": "BinCat", "url": "https://github.com/airbus-seclab/bincat", "description": "BinCat is a binary code static analysis toolkit.", "stars": "1.8k"}, {"name": "cwe\\_checker", "url": "https://github.com/fkie-cad/cwe_checker", "description": "cwe\\_checker finds vulnerable patterns in binary executables.", "stars": "1.3k"}, {"name": "Owi", "url": "https://github.com/OCamlPro/owi", "description": "Owi is a toolchain for working with WebAssembly (Wasm) in OCaml, featuring a powerful, parallel symbolic execution engine for Wasm. It also provides frontends for compiling and analyzing C and Rust programs.", "stars": "266"}, {"name": "Smt.ml", "url": "https://github.com/formalsec/smtml", "description": "Smt.ml is a frontend OCaml library that interfaces with multiple SMT solvers, enabling seamless integration of solvers like Z3, cvc5, Colibri2, Bitwuzla, and Alt-Ergo within OCaml programs.", "stars": "55"}, {"name": "ISO8601", "url": "https://github.com/sagotch/ISO8601.ml", "description": "", "stars": "28"}, {"name": "calendar", "url": "http://calendar.forge.ocamlcore.org/", "description": ""}, {"name": "odate", "url": "https://github.com/hhugo/odate", "description": "", "stars": "22"}, {"name": "ptime", "url": "http://erratique.ch/software/ptime", "description": ""}, {"name": "Try OCaml", "url": "https://try.ocamlpro.com/", "description": "Try OCaml in your web browser."}, {"name": "learn-ocaml", "url": "https://github.com/ocaml-sf/learn-ocaml", "description": "", "stars": "324"}, {"name": "learn-ocaml.el", "url": "https://github.com/pfitaxel/learn-ocaml.el", "description": "", "stars": "8"}, {"name": "BetterOCaml", "url": "https://betterocaml.ml", "description": "An efficient, intuitive, and cross-platform web IDE with your OCaml code interpreted and running in your browser!"}, {"name": "codingground", "url": "https://www.tutorialspoint.com/compile_ocaml_online.php", "description": "Compile and execute OCaml code online."}, {"name": "OCaml: Learn & Code iOS app", "url": "https://apps.apple.com/app/ocaml-learn-code/id1547506826", "description": "Learn and execute OCaml code from your iPhone/iPad/Mac."}, {"name": "Jupyter", "url": "https://github.com/akabe/ocaml-jupyter", "description": "An OCaml kernel for the Jupyter notebook.", "stars": "305"}, {"name": "utop", "url": "https://github.com/ocaml-community/utop", "description": "Universal toplevel for OCaml with support for multiline edition, history, real-time and context-sensitive completion, colors, and more.", "stars": "903"}, {"name": "ocamlformat", "url": "https://github.com/ocaml-ppx/ocamlformat", "description": "A command-line tool to format OCaml code.", "stars": "697"}, {"name": "ocamlbrowser", "url": "http://caml.inria.fr/pub/docs/manual-ocaml/browser.html", "description": "A source and compiled interface browser, written using LablTk. Included in the standard distribution for ocaml <= 4.01 and with labltk for ocaml >= 4.02."}, {"name": "ghim", "url": "https://github.com/samoht/ghim", "description": "A command-line tool to manage Github Issues.", "stars": "19"}, {"name": "OCaml Yeoman Generator", "url": "https://github.com/mabrasil/generator-ocaml", "description": "Yeoman generator to scaffold OCaml modules.", "stars": "22"}, {"name": "puml2xml", "url": "https://github.com/khalidbelk/puml2xml", "description": "A PlantUML (**.puml**) to XML (**.xmi**) converter.", "stars": "4"}, {"name": "99 problems", "url": "https://ocaml.org/learn/tutorials/99problems.html", "description": ""}, {"name": "learn-ocaml-corpus", "url": "https://ocaml-sf.org/learn-ocaml-public/#activity=exercises", "description": ""}, {"name": "Rosetta Code", "url": "http://rosettacode.org/wiki/Category:OCaml", "description": ""}, {"name": "OCaml at Exercism", "url": "http://exercism.io/languages/ocaml", "description": "Exercism is your place to engage in thoughtful conversations about code. Explore simplicity, idiomatic language features, and expressive, readable code. [Solutions (\u2b50105)](https://github.com/exercism/xocaml)."}, {"name": "Programming Language Examples Alike Cookbook", "url": "http://pleac.sourceforge.net/pleac_ocaml/index.html", "description": "The OCaml section of the book is a free reference for solving common programming problems using OCaml."}, {"name": "Coq", "url": "https://coq.inria.fr/", "description": "Coq is a formal proof management system. It provides a formal language to write mathematical definitions, executable algorithms, and theorems, together with an environment for semi-interactive development of machine-checked proofs."}, {"name": "Why3", "url": "http://why3.lri.fr/", "description": "Why3 is a platform for deductive program verification. It provides a rich language for specification and programming, called WhyML, and relies on external theorem provers, both automated and interactive, to discharge verification conditions."}, {"name": "Alt-Ergo", "url": "http://alt-ergo.lri.fr/", "description": "Alt-Ergo is an open-source SMT solver dedicated to the proof of mathematical formulas generated in the context of program verification."}, {"name": "Functional Programming with OCaml", "url": "https://haifengl.wordpress.com/2014/06/17/ocaml-introduction/", "description": ""}, {"name": "Python to OCaml: retrospective", "url": "http://roscidus.com/blog/blog/2014/06/06/python-to-ocaml-retrospective/", "description": ""}, {"name": "OCaml for the Masses", "url": "http://queue.acm.org/detail.cfm?id=2038036", "description": ""}, {"name": "Why We Use OCaml", "url": "https://espertech.wordpress.com/2014/07/15/why-we-use-ocaml", "description": ""}, {"name": "Xen \u2013 OCaml Coding Considerations", "url": "http://wiki.xen.org/wiki/OCaml_Coding_Considerations", "description": ""}, {"name": "Monads are a class of hard drugs", "url": "http://lambda-diode.com/programming/monads-are-a-class-of-hard-drugs", "description": ""}, {"name": "Beginner's guide to OCaml", "url": "http://blog.nullspace.io/beginners-guide-to-ocaml-beginners-guides.html", "description": ""}, {"name": "Why OCaml, why now?", "url": "http://spyder.wordpress.com/2014/03/16/why-ocaml-why-now/", "description": ""}, {"name": "A blog about game development in OCaml", "url": "http://cranialburnout.blogspot.ca/", "description": ""}, {"name": "(Functional) Alternatives to inheritance", "url": "http://ocamltutorials.blogspot.se/2013/06/alternatives-to-subtyping.html", "description": ""}, {"name": "camlPDF", "url": "https://github.com/johnwhitington/camlpdf", "description": "OCaml library for reading, writing and modifying PDF files.", "stars": "218"}, {"name": "slacko", "url": "https://github.com/Leonidas-from-XIV/slacko", "description": "A neat interface for Slack in OCaml.", "stars": "86"}, {"name": "Learn X in Y minutes", "url": "https://learnxinyminutes.com/docs/ocaml/", "description": "Where X=OCaml."}, {"name": "Camomile", "url": "https://github.com/yoriyuki/Camomile/", "description": "A Unicode library for OCaml.", "stars": "124"}, {"name": "ocaml-m17n", "url": "https://github.com/whitequark/ocaml-m17n", "description": "Multilingualization for OCaml source code. Allows using Unicode identifiers in OCaml source code.", "stars": "49"}, {"name": "Uucd", "url": "https://github.com/dbuenzli/uucd", "description": "Unicode character database decoder for OCaml.", "stars": "17"}, {"name": "Uucp", "url": "https://github.com/dbuenzli/uucp", "description": "Unicode character properties for OCaml.", "stars": "24"}, {"name": "Uunf", "url": "https://github.com/dbuenzli/uunf", "description": "Unicode text normalization for OCaml.", "stars": "24"}, {"name": "Uuseg", "url": "https://github.com/dbuenzli/uuseg", "description": "Unicode text segmentation for OCaml.", "stars": "25"}, {"name": "Uutf", "url": "https://github.com/dbuenzli/uutf", "description": "Non-blocking streaming Unicode codec for OCaml.", "stars": "35"}, {"name": "lablgtk", "url": "https://garrigue.github.io/lablgtk/", "description": "GTK2 and GTK3 bindings for OCaml with various higher-level facilities to define GUIs."}, {"name": "lablqml", "url": "https://github.com/Kakadu/lablqml", "description": "QML Qt5 bindings for OCaml.", "stars": "164"}, {"name": "labltk", "url": "https://forge.ocamlcore.org/projects/labltk/", "description": "Interface to the Tcl/Tk GUI framework. In the standard distribution for ocaml <= 4.01."}, {"name": "TSDL", "url": "http://erratique.ch/software/tsdl", "description": "Tsdl is an OCaml module providing thin bindings to the cross-platform SDL library."}, {"name": "Lambda-Term", "url": "https://github.com/ocaml-community/lambda-term", "description": "Lambda-Term is a cross-platform library for manipulating the terminal. It provides an abstraction for keys, mouse events, and colors, as well as a set of widgets to write curses-like applications.", "stars": "224"}, {"name": "Notty", "url": "https://github.com/pqwy/notty", "description": "Notty is a declarative terminal library for OCaml, structured around the notion of composable images.", "stars": "371"}, {"name": "ocaml-linenoise", "url": "https://github.com/ocaml-community/ocaml-linenoise", "description": "Self-contained OCaml bindings to linenoise; easy high-level readline functionality in OCaml.", "stars": "55"}, {"name": "Higher-Rank Polymorphism in OCaml", "url": "http://devmusings.legiasoft.com/blog/2008/05/23/higher-rank_polymorphism_in_ocaml", "description": ""}, {"name": "mikmatch", "url": "https://github.com/mjambon/mikmatch", "description": "OCaml pattern-matching extended with regexps", "stars": "23"}, {"name": "Inlined records in constructors", "url": "https://www.lexifi.com/ocaml/inlined-records-constructors/", "description": ""}, {"name": "Algebraic Data Types", "url": "https://espertech.wordpress.com/2014/07/30/algebraic-data-types/", "description": ""}, {"name": "XEN \u2013 OCaml Best Practices for Developers", "url": "http://wiki.xen.org/wiki/OCaml_Best_Practices_for_Developers", "description": ""}, {"name": "OCaml Style Guide (by Jane Street)", "url": "https://opensource.janestreet.com/standards/", "description": "See also: [\\[1\\]](https://www.seas.upenn.edu/~cis500/cis500-f06/resources/programming_style.html), [\\[2\\]](http://www.cs.cornell.edu/Courses/cs312/2001sp/style.html), [\\[3\\]](https://www.seas.upenn.edu/~cis120/20fa/ocaml_style/)."}, {"name": "A safe but strange way of modifying OCaml compiler", "url": "https://camlspotter.blogspot.com/2012/09/a-safe-but-strange-way-of-modifying.html", "description": ""}, {"name": "Fiddling with the OCaml Type System", "url": "https://technotroph.wordpress.com/2013/10/25/fiddling-with-the-ocaml-type-system/", "description": ""}, {"name": "Base", "url": "https://github.com/janestreet/base", "description": "Standard library for OCaml", "stars": "980"}, {"name": "cil", "url": "https://github.com/cil-project/cil", "description": "C Intermediate Language", "stars": "386"}, {"name": "coq", "url": "https://github.com/coq/coq", "description": "formal proof management system", "stars": "5.3k"}, {"name": "frama-c", "url": "https://git.frama-c.com/pub/frama-c", "description": "platform dedicated to the analysis of source code written in C"}, {"name": "libguestfs", "url": "https://github.com/libguestfs/libguestfs", "description": "library and tools for accessing and modifying virtual machine disk images", "stars": "695"}, {"name": "Liquidsoap", "url": "https://github.com/savonet/liquidsoap", "description": "a swiss-army knife for multimedia streaming, notably used for netradios and webtvs", "stars": "1.6k"}, {"name": "mirage", "url": "https://github.com/mirage/mirage", "description": "library operating system that constructs unikernels for secure, high-performance network applications across a variety of cloud computing and mobile platforms", "stars": "2.8k"}, {"name": "MLDonkey", "url": "https://github.com/ygrek/mldonkey", "description": "cross-platform multi-network peer-to-peer daemon", "stars": "320"}, {"name": "Oni2", "url": "https://github.com/onivim/oni2", "description": "Native, lightweight modal code editor.", "stars": "7.9k"}, {"name": "pfff", "url": "https://github.com/returntocorp/pfff", "description": "an OCaml API to write static analysis, dynamic analysis, code visualizations, code navigations, or style-preserving source-to-source transformations such as refactorings on source code.", "stars": "183"}, {"name": "Tezos", "url": "https://gitlab.com/tezos/tezos", "description": "a self-upgradable Proof of Stake blockchain"}, {"name": "WHY3", "url": "https://gitlab.inria.fr/why3/why3", "description": "platform for deductive program verification"}, {"name": "xen-api", "url": "https://github.com/xapi-project/xen-api", "description": "management stack that configures and controls Xen-enabled hosts and resource pools, and co-ordinates resources within the pool.", "stars": "357"}, {"name": "dolog", "url": "https://github.com/UnixJunkie/dolog", "description": "A dumb OCaml logger.", "stars": "37"}, {"name": "Volt", "url": "https://github.com/codinuum/volt", "description": "A variant of the Bolt OCaml logging tool.", "stars": "8"}, {"name": "Logs", "url": "http://erratique.ch/software/logs", "description": "Logs provides a logging infrastructure for OCaml."}, {"name": "ocaml-zmq", "url": "https://github.com/issuu/ocaml-zmq", "description": "ZeroMQ bindings for OCaml with Async and Lwt wrappers.", "stars": "83"}, {"name": "onanomsg", "url": "https://github.com/rgrinberg/onanomsg", "description": "nanomsg bindings for OCaml.", "stars": "38"}, {"name": "Kafka", "url": "https://github.com/didier-wenzek/ocaml-kafka", "description": "OCaml bindings for Apache Kafka.", "stars": "69"}, {"name": "AMQP", "url": "https://github.com/andersfugmann/amqp-client", "description": "AMQP client library for Async and Lwt.", "stars": "64"}, {"name": "MPI", "url": "https://github.com/xavierleroy/ocamlmpi", "description": "Message Passing Interface bindings for OCaml.", "stars": "26"}, {"name": "MQTT", "url": "https://github.com/j0sh/ocaml-mqtt", "description": "OCaml implementation of the MQTT pubsub protocol.", "stars": "19"}, {"name": "capnp-ocaml", "url": "https://github.com/capnproto/capnp-ocaml", "description": "OCaml code generator plugin for the Cap'n Proto serialization framework.", "stars": "102"}, {"name": "prometheus", "url": "https://github.com/mirage/prometheus", "description": "OCaml client library for Prometheus monitoring.", "stars": "54"}, {"name": "ocaml-dns", "url": "https://github.com/mirage/ocaml-dns", "description": "A pure OCaml implementation of the DNS protocol.", "stars": "109"}, {"name": "fluent-logger", "url": "https://github.com/fluent/fluent-logger-ocaml", "description": "Fluentd logger for OCaml.", "stars": "8"}, {"name": "charrua-unix", "url": "https://github.com/haesbaert/charrua-unix", "description": "charrua-unix is a Unix DHCP daemon based on [charrua-core (\u2b5056)](https://github.com/haesbaert/charrua-core).", "stars": "11"}, {"name": "OCaml MOOC: Introduction to Functional Programming in OCaml", "url": "https://www.fun-mooc.fr/en/courses/introduction-functional-programming-ocaml/", "description": "Videos available in [this playlist](https://www.youtube.com/playlist?list=PLTBEN441uEY36t5CCrJkdTSv588d3nWN5) of the [OCaml Software Foundation](https://ocaml-sf.org/) YouTube channel."}, {"name": "Cornell University \u2013 Data Structures and Functional Programming", "url": "http://www.cs.cornell.edu/Courses/cs3110/2014fa/course_info.php", "description": ""}, {"name": "Princeton University - Functional programming in OCaml", "url": "http://www.cs.princeton.edu/~dpw/courses/cos326-12/", "description": ""}, {"name": "University of Illinois", "url": "https://courses.engr.illinois.edu/cs421/fa2014/", "description": "Course that uses OCaml to teach functional programming and programming language design"}, {"name": "**Dum**", "url": "https://github.com/mjambon/dum#readme", "description": ""}, {"name": "**Inspect**", "url": "https://github.com/krohrer/caml-inspect#readme", "description": ""}, {"name": "**ppx\\_deriving**", "url": "https://github.com/ocaml-ppx/ppx_deriving#usage", "description": ""}, {"name": "**refl**", "url": "https://github.com/thierry-martinez/refl#basic-usage", "description": ""}, {"name": "**lrt**", "url": "https://github.com/LexiFi/lrt#getting-started", "description": ""}, {"name": "**tpf**", "url": "https://github.com/pqwy/tpf#readme", "description": ""}, {"name": "**typerep**", "url": "https://github.com/janestreet/typerep", "description": ""}, {"name": "**repr**", "url": "https://mirage.github.io/repr/repr/Repr/index.html#val-pp_json", "description": ""}, {"name": "**data-encoding**", "url": "https://gitlab.com/nomadic-labs/data-encoding/-/blob/master/src/tutorial.md#how-to-build-an-encoding", "description": ""}, {"name": "**cmon**", "url": "https://github.com/let-def/cmon#documentation", "description": ""}, {"name": "**dyn**", "url": "https://github.com/ocaml/dune/blob/4b95cd3d1b3a62e69a9a9db2bc4af2f9fd2e56d8/otherlibs/dyn/dyn.mli", "description": ""}, {"name": "**Genprint**", "url": "https://github.com/progman1/genprintlib#readme", "description": ""}, {"name": "**OCaml@p**", "url": "https://github.com/tsubame-sp/ocaml_at_p#readme", "description": ""}, {"name": "drom", "url": "https://github.com/OCamlPro/drom/", "description": "The drom tool is a wrapper over opam/dune in an attempt to provide a cargo-like user experience.", "stars": "196"}, {"name": "spin", "url": "https://github.com/tmattio/spin", "description": "Reason and Ocaml project generator", "stars": "299"}, {"name": "modern-ocaml", "url": "https://github.com/Khady/modern-ocaml", "description": "Template for an ocaml project with modern tooling", "stars": "89"}, {"name": "OCaml polymorphism example other than template function?", "url": "https://stackoverflow.com/questions/14440531/ocaml-polymorphism-example-other-than-template-function", "description": ""}, {"name": "OCaml - polymorphic print and type losing", "url": "https://stackoverflow.com/questions/7442449/ocaml-polymorphic-print-and-type-losing", "description": ""}, {"name": "biocaml", "url": "https://github.com/biocaml/biocaml", "description": "OCaml Bioinformatics Library <http://biocaml.org>.", "stars": "124"}, {"name": "bistro", "url": "https://github.com/pveber/bistro", "description": "OCaml library for building bioinformatics pipelines.", "stars": "48"}, {"name": "lacaml", "url": "https://mmottl.github.io/lacaml/", "description": "OCaml bindings for BLAS/LAPACK (high-performance linear algebra Fortran libraries)."}, {"name": "obandit", "url": "http://freux.fr/oss/obandit.html", "description": "OCaml library for multi-armed bandits."}, {"name": "onumerical", "url": "https://github.com/cheshire/onumerical", "description": "Numerical library for OCaml.", "stars": "8"}, {"name": "oml", "url": "https://github.com/hammerlab/oml", "description": "OCaml library for general numerical work.", "stars": "120"}, {"name": "ocephes", "url": "https://github.com/rleonid/ocephes", "description": "Bindings to frequently used `C` special functions library.", "stars": "12"}, {"name": "slap", "url": "https://github.com/akabe/slap", "description": "A linear algebra library in OCaml with type-based static size checking for matrix operations.", "stars": "89"}, {"name": "tensorflow-ocaml", "url": "https://github.com/LaurentMazare/tensorflow-ocaml", "description": "OCaml bindings for TensorFlow.", "stars": "287"}, {"name": "owl", "url": "https://github.com/owlbarn/owl", "description": "OCaml numerical library: dense and sparse matrix, linear algebra, regressions, maths and stats functions.", "stars": "1.3k"}, {"name": "WHIZARD", "url": "https://whizard.hepforge.org/", "description": "A system designed for the efficient calculation of multi-particle scattering cross sections and simulated event samples."}, {"name": "Re", "url": "https://github.com/ocaml/ocaml-re", "description": "a pure OCaml regular expressions library with combinators, supporting several formats (glob, posix, str, etc.).", "stars": "249"}, {"name": "ocaml-pcre", "url": "https://github.com/mmottl/pcre-ocaml", "description": "bindings to the PCRE library (perl-compatible regular expressions)", "stars": "35"}, {"name": "Humane-re", "url": "https://github.com/rgrinberg/humane-re", "description": "Humane-re attempts to provide an easy interface for 90% of your regex needs. Courtesy of ocaml-re.", "stars": "26"}, {"name": "Tyre", "url": "https://github.com/Drup/tyre", "description": "Tyre is a set of combinators to build type-safe regular expressions, allowing automatic extraction and modification of matched groups.", "stars": "180"}, {"name": "ocaml-tls", "url": "https://github.com/mirleft/ocaml-tls", "description": "TLS in pure OCaml.", "stars": "318"}, {"name": "Digestif", "url": "https://github.com/mirage/digestif", "description": "Hash algorithms (like SHA\\* or BLAKE2\\*) in OCaml and C.", "stars": "93"}, {"name": "cryptokit", "url": "https://github.com/xavierleroy/cryptokit", "description": "The Cryptokit library for OCaml provides a variety of cryptographic primitives that can be used to implement cryptographic protocols in security-sensitive applications.", "stars": "103"}, {"name": "nocoiner", "url": "https://github.com/marcoonroad/nocoiner", "description": "A Commitment scheme library for Multi-party computations such as online auctions and gambling.", "stars": "11"}, {"name": "nocrypto", "url": "https://github.com/mirleft/ocaml-nocrypto", "description": "A small cryptographic library behind the ocaml-tls project. It is built to be straightforward to use, adhere to functional programming principles, and able to run in a Xen-based unikernel.", "stars": "111"}, {"name": "OCaml-RDF", "url": "https://framagit.org/zoggy/ocaml-rdf", "description": "OCaml library to manipulate RDF graphs and execute Sparql queries."}, {"name": "atdgen", "url": "https://github.com/ahrefs/atd", "description": "A serialization compiler for multiple languages (OCaml, Java, Python, Scala, Typescript) with a Binou or JSON format", "stars": "334"}, {"name": "bencode", "url": "https://github.com/rgrinberg/bencode", "description": "Bencode (.torrent file format) reader/writer.", "stars": "25"}, {"name": "biniou", "url": "https://github.com/mjambon/biniou", "description": "Extensible binary data format, like JSON but faster.", "stars": "43"}, {"name": "cbor", "url": "https://github.com/ygrek/ocaml-cbor", "description": "OCaml native [CBOR](https://cbor.io/) decoder/encoder.", "stars": "24"}, {"name": "jsonm", "url": "http://erratique.ch/software/jsonm", "description": "Non-blocking streaming JSON codec for OCaml."}, {"name": "xmlm", "url": "http://erratique.ch/software/xmlm", "description": "A streaming codec to decode and encode the XML data format."}, {"name": "yojson", "url": "https://github.com/ocaml-community/yojson", "description": "An optimized parsing and printing library for the JSON format.", "stars": "360"}, {"name": "sexplib", "url": "https://github.com/janestreet/sexplib", "description": "A S-expression parser and printer", "stars": "172"}, {"name": "Mirage OS", "url": "https://github.com/mirage/mirage", "description": "Mirage is a programming framework for constructing secure, high-performance network applications across a variety of cloud computing and mobile platforms.", "stars": "2.8k"}, {"name": "ocaml-fat", "url": "https://github.com/mirage/ocaml-fat", "description": "Read and write FAT-format filesystems from OCaml.", "stars": "25"}, {"name": "ocaml-git", "url": "https://github.com/mirage/ocaml-git", "description": "Pure OCaml low-level git bindings.", "stars": "368"}, {"name": "ocaml-vchan", "url": "https://github.com/mirage/ocaml-vchan", "description": "Pure OCaml implementation of the \"vchan\" shared-memory communication protocol.", "stars": "45"}, {"name": "Alcotest", "url": "https://github.com/mirage/alcotest", "description": "A lightweight and colourful test framework.", "stars": "497"}, {"name": "OUnit", "url": "http://ounit.forge.ocamlcore.org/", "description": "OUnit is a unit test framework for OCaml. It allows one to easily create unit-tests for OCaml code. It is based on HUnit, a unit testing framework for Haskell."}, {"name": "QCheck", "url": "https://github.com/c-cube/qcheck", "description": "QCheck is a property testing library inspired from Haskell's QuickCheck", "stars": "385"}, {"name": "iTeML", "url": "https://github.com/vincent-hugot/iTeML", "description": "", "stars": "67"}, {"name": "Kaputt", "url": "http://kaputt.x9c.fr/", "description": "comprehensive testing framework."}, {"name": "Pa\\_test", "url": "https://ocaml.janestreet.com/ocaml-core/111.28.00/doc/pa_test", "description": "General inline testing macro's."}, {"name": "TestSimple", "url": "https://github.com/hcarty/ocaml-testsimple", "description": "A lightweight unit testing framework compatible with the [Test Anything Protocol](https://testanything.org/).", "stars": "13"}, {"name": "expect-test", "url": "https://github.com/janestreet/ppx_expect", "description": "A framework for writing tests in OCaml, similar to [Cram](https://bitheap.org/cram/), developed by [JaneStreet](https://blog.janestreet.com/testing-with-expectations/).", "stars": "180"}, {"name": "ocaml-cuid", "url": "https://github.com/marcoonroad/ocaml-cuid", "description": "Collision-resistant IDs for server scalability & database performance.", "stars": "18"}, {"name": "Validate", "url": "https://github.com/Axot017/validate", "description": "PPX deriver designed to streamline the process of validating records.", "stars": "17"}, {"name": "Uuidm", "url": "https://erratique.ch/software/uuidm", "description": "Uuidm is an OCaml module implementing 128-bit universally unique identifiers version 3, 5 (name based with MD5, SHA-1 hashing) and 4 (random based) according to RFC 4122."}, {"name": "sqids-ocaml", "url": "https://github.com/sqids/sqids-ocaml", "description": "Official OCaml port of Sqids. Generate short unique IDs from numbers.", "stars": "10"}]}], "name": ""}