forked from ocaml/ocaml.org
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tools.yml
214 lines (184 loc) · 8.92 KB
/
tools.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
tools:
- name: odoc
source: https://github.com/ocaml/odoc
license: ISC
synopsis: Documentation Generator for OCaml
description: >
Documentation Generator for OCaml
lifecycle: active
- name: MDX
source: https://github.com/realworldocaml/mdx
license: ISC
synopsis: Executable Codeblocks Inside Markdown Files
description: >
`ocaml-mdx` allows to execute code blocks inside markdown files.
There are (currently) two sub-commands, corresponding
to two modes of operations: pre-processing (`ocaml-mdx pp`)
and tests (`ocaml-mdx test`).
The preprocessor mode allows to mix documentation and code,
and to practice "literate programming" using markdown and OCaml.
The test mode allows to ensure that shell scripts and OCaml fragments
in the documentation always stays up-to-date.
`ocaml-mdx` is released as two binaries called `ocaml-mdx` and `mdx` which are
the same, `mdx` being the deprecate name, kept for now for compatibility.
lifecycle: incubate
- name: OCamlFormat
source: https://github.com/ocaml-ppx/ocamlformat
license: MIT
synopsis: Auto-Formatter for OCaml Code
description: >
OCamlFormat is a tool to automatically format OCaml code in a uniform style.
lifecycle: active
- name: dune-release
source: https://github.com/ocamllabs/dune-release
license: ISC
synopsis: Release Dune packages in Opam
description: >
`dune-release` is a tool to streamline the release of Dune packages in
[opam](https://opam.ocaml.org). It supports projects built
with [Dune](https://github.com/ocaml/dune) and hosted on
[GitHub](https://github.com).
lifecycle: incubate
- name: OCaml-LSP
source: https://github.com/ocaml/ocaml-lsp
license: ISC
synopsis: LSP Server for OCaml
description: >
OCaml-LSP is a language server for OCaml that implements Language Server Protocol (LSP).
lifecycle: active
- name: Opam
source: https://github.com/ocaml/opam
license: LGPLv2
synopsis: A source-based OCaml package manager
description: >
A source-based OCaml package manager
lifecycle: active
- name: Dune
source: https://github.com/ocaml/dune
license: MIT
synopsis: Fast, portable, and opinionated build system
description: >
Dune is a build system that was designed to simplify the release of
Jane Street packages. It reads metadata from "dune" files following a
very simple s-expression syntax.
Dune is fast, has very low-overhead, and supports parallel builds on
all platforms. It has no system dependencies; all you need to build
Dune or packages using d\Dune is OCaml. You don't need make or bash
as long as the packages themselves don't use bash explicitly.
Dune supports multi-package development by simply dropping multiple
repositories into the same directory.
It also supports multicontext builds, such as building against
several opam roots/switches simultaneously. This helps maintaining
packages across several versions of OCaml and gives cross-compilation
for free.
lifecycle: active
- name: Merlin
source: https://github.com/ocaml/merlin
license: MIT
synopsis: Editor helper, provides completion, typing, and source browsing in Vim and Emacs
description: >
Merlin is an assistant for editing OCaml code. It aims to provide the features available in modern IDEs: error reporting, auto completion, source browsing and much more.
lifecycle: active
- name: Ppxlib
source: https://github.com/ocaml-ppx/ppxlib
license: MIT
synopsis: Standard library for PPX rewriters
description: >
Ppxlib is the standard library for ppx rewriters and other programs
that manipulate the in-memory reprensation of OCaml programs, a.k.a
the "Parsetree".
It also comes bundled with two PPX rewriters that are commonly used to
write tools that manipulate and/or generate Parsetree values;
`ppxlib.metaquot` which allows to construct Parsetree values using the
OCaml syntax directly and `ppxlib.traverse` which provides various
ways of automatically traversing values of a given type, in particular
allowing to inject a complex structured value into generated code.
lifecycle: active
- name: opam-publish
source: https://github.com/ocaml-opam/opam-publish
license: LGPLv2
synopsis: A tool to ease contributions to Opam repositories
description: >
`opam-publish` automates publishing packages to package repositories: it checks that the
Opam file is complete using `opam lint`, verifies and adds the archive URL and its
checksum and files a GitHub pull request for merging it.
lifecycle: active
- name: Utop
source: https://github.com/ocaml-community/utop
license: 3 Clause BSD
synopsis: Universal Toplevel for OCaml
description: >
Utop is an improved toplevel (i.e., Read-Eval-Print Loop or REPL) for
OCaml. It can run in a terminal or in Emacs. It supports line
edition, history, real-time and context sensitive completion, colors,
and more. It integrates with the Tuareg mode in Emacs.
lifecycle: active
- name: Omp
source: https://github.com/ocaml-ppx/ocaml-migrate-parsetree
license: LGPLv2
synopsis: Convert OCaml parsetrees between different versions
description: >
Convert OCaml parsetrees between different versions
This library converts parsetrees, outcometree and ast mappers between
different OCaml versions. High-level functions help making PPX
rewriters independent of a compiler version.
lifecycle: deprecate
- name: OCamlbuild
source: https://github.com/ocaml/ocamlbuild
license: LGPLv2
synopsis: OCamlbuild is a build system with builtin rules to easily build most OCaml projects
description: ""
lifecycle: deprecate
- name: OCamlfind
source: https://github.com/ocaml/ocamlfind
license: MIT
synopsis: A library manager for OCaml
description: >
Findlib is a library manager for OCaml. It provides a convention how
to store libraries, and a file format ("META") to describe the
properties of libraries. There is also a tool (ocamlfind) for
interpreting the META files, so that it is very easy to use libraries
in programs and scripts.
lifecycle: sustain
- name: ocp-indent
source: https://github.com/OCamlPro/ocp-indent
license: LGPLv2
synopsis: A simple tool to indent OCaml programs
description: >
`ocp-indent` is based on an approximate, tolerant OCaml parser and a simple stack
machine ; this is much faster and more reliable than using regexps. Presets and
configuration options available, with the possibility to set them project-wide.
Supports most common syntax extensions, and extensible for others.
Includes:
- An indentor program, callable from the command-line or from within editors
- Bindings for popular editors
- A library that can be directly used by editor writers, or just for
fault-tolerant/approximate parsing.
lifecycle: sustain
- name: Oasis
source: https://github.com/ocaml/oasis
license: LGPLv2
synopsis: Tooling for building OCaml libraries and applications
description: >
Oasis generates a full configure, build and install system for your application. It starts with a `simple _oasis` file at the toplevel of your project and creates everything required.
Oasis leverages existing OCaml tooling to perform most of it's work. In fact, it might be more appropriate to think of it as simply the glue that binds these other subsystems together and coordinates the work that they do. It should support the following tools:
- OCamlbuild
- OMake
- OCamlMakefile (todo),
- `ocaml-autoconf` (todo)
It also features a do-it-yourself command line invocation and an internal configure/install scheme. Libraries are managed through findlib. It has been tested on GNU Linux and Windows.
It also allows to have standard entry points and description. It helps to integrates your libraries and software with third parties tools like OPAM.
lifecycle: deprecate
- name: Camlp4
source: https://github.com/camlp4/camlp4
license: LGPLv2
synopsis: Camlp4 is a system for writing extensible parsers for programming languages
description: >
It provides a set of OCaml libraries that are used to define grammars as well
as loadable syntax extensions of such grammars. Camlp4 stands for Caml
Preprocessor and Pretty-Printer and one of its most important applications is
the definition of domain-specific extensions of the syntax of OCaml.
Camlp4 was part of the official OCaml distribution until its version 4.01.0.
Since then it has been replaced by a simpler system which is easier to maintain
and to learn: ppx rewriters and extension points.
lifecycle: deprecate