package tablecloth-base
Install
Dune Dependency
Authors
Maintainers
Sources
md5=eef8da54ae2e373fc38a08bb761ea973
sha512=c74de7cf90798c6c2702a21f40d340da3fa2405f00ccc193568a04d6b0e08a41b47d5db35c0ed7662043f1fe223c2e82212e162a64f67c3577dece6660c08b20
Description
Tablecloth is an ergonomic, cross-platform, standard library for use with OCaml and Rescript. It provides an easy-to-use, comprehensive and performant standard library, that has the same API on in OCaml and Rescript.
Published: 06 Jan 2024
README
Tablecloth-ocaml-base
Tablecloth is a library that shims over various standard libraries so they have the same function and module names, which using idiomatic types and patterns in each language.
This is the OCaml implementation, which uses Base, pipe-last, keyword arguments, and snake_case.
Tablecloth is alpha-quality software, and is pre-1.0. It is currently undergoing some significant shifts and some libraries listed below are not available yet. Caveat emptor.
Check out the website for our interactive API documentation, or join the community in the Tablecloth Discord.
Installation
Note: these instructions are for the upcoming new version of tablecloth
Install via opam:
opam install tablecloth-ocaml-base
Then add to your dune file:
(libraries (tablecloth-ocaml-base ...))
Usage
The recommended way to use Tablecloth is with a top-level open at the beginning of a file.
This will ensure that all the built-in modules are replaced.
open Tablecloth
let () =
String.to_list "somestring"
|> List.map ~f:Char.to_code
|> List.map ~f:(fun x -> x+1)
|> List.filter_map ~f:Char.from_code
|> String.from_list
Supported versions
Tablecloth for native OCaml supports OCaml 4.08-4.14 and Base v0.12.2/v0.13.2/v0.14.3. We are open to supporting other versions:
OCaml 4.06 and 4.07 require small tweaks to our build system
Base v0.9, v0.10, and v0.11 require small code changes
Development
When developing Tablecloth, you can test it against different versions of OCaml (native) and Base, using the following commands:
TC_BASE_VERSION=v0.14.0 TC_NATIVE_OCAML_SWITCH=4.11.0 make deps
Contributions
The maintainers are warm and friendly, and the project abides by a Code of Conduct.
There are many small tasks to be done - a small change to a single function can be extremely helpful. We also welcome new versions of tablecloth for other languages, or even for the same language but based on other libraries.
Check out the dedicated guide on contributing for more.
Developing
Please refer to the Makefile
for a complete list of supported actions. Here is a handful of useful, supported commands:
make deps
: Install OCaml dependencies.make build
: Build the project.make test
: Run the test suite. You may need tomake build
first.make check-format
: Check your code is formatted correctly.make format
: Format code.cd ocamldoc-json-generator && make deps && make doc
: Build model.json for the website (needs to be updated and checked in whenever the APIs change.)
Dependencies
Install OCaml and OPAM based on your OS
You may need to run
opam init
License
Tablecloth uses the MIT license.
Authors
Initially written by Darklang.
Dev Dependencies
None
Used by (1)
-
tablecloth-native
>= "transition"
Conflicts (1)
-
tablecloth-native
!= "transition"