All Projects → mirage → irmin-server

mirage / irmin-server

Licence: ISC license
A high-performance server for Irmin

Programming Languages

ocaml
1615 projects
HTML
75241 projects

Projects that are alternatives of or similar to irmin-server

nibbledb
a byte-sized time series database
Stars: ✭ 23 (+4.55%)
Mutual labels:  irmin
Irmin
Built-in Snapshotting - backup and restore Storage Agnostic - you can use Irmin on top of your own storage layer Custom Datatypes - (de)serialization for custom data types, derivable via ppx_irmin Highly Portable - runs anywhere from Linux to web browsers and Xen unikernels Git Compatibility - irmin-git uses an on-disk format that can be inspected and modified using Git Dynamic Behavior - allows the users to define custom merge functions, use in-memory transactions (to keep track of reads as well as writes) and to define event-driven workflows using a notification mechanism
Stars: ✭ 1,524 (+6827.27%)
Mutual labels:  irmin
causal-rpc
A traceable distributed computation framework
Stars: ✭ 21 (-4.55%)
Mutual labels:  irmin
irmin-rpc
RPC client/server for Irmin
Stars: ✭ 20 (-9.09%)
Mutual labels:  irmin
entries.pub
WIP IndieWeb blog engine
Stars: ✭ 13 (-40.91%)
Mutual labels:  irmin

irmin-server

A server for irmin using a custom wire protocol, designed to have minimal overhead.

Command-line

Server

To run the server:

$ dune exec bin/server/server.exe -- --root ./data

Run the server with web-based dashboard on port 9999:

$ dune exec bin/server/server.exe -- --root ./data --dashboard 9999

For more information:

```shell
$ dune exec bin/server/server.exe -- --help

irmin-server accept WebSocket connection. To run the server:

$ dune exec -- ./examples/server.exe --uri=ws://localhost:9090/ws

irmin-server can also be executed using Docker:

$ docker run --env PORT=9999 $(docker build -q .)

Client

irmin-client is a command-line application that can be used to send commands to irmin-server

For a list of available commands:

$ dune exec bin/client/client.exe -- --help

For help with a specific command (for example, ping):

$ dune exec bin/client/client.exe -- ping --help

irmin-client can also send commands to irmin-server via WebSocket. To run an example thats ping the server:

$ dune exec ./examples/ping.exe ws://localhost:9090/ws

Browser

Server

irmin-server accept WebSocket connection which makes communication from a browser possible. To run the server:

$ dune exec -- ./examples/server.exe --uri=ws://localhost:9090/ws

Client

irmin-client-jsoo is a browser application that can be used to send commands to irmin-server via WebSocket
cd into examples/js

$ dune build

To run an example thats ping the server from the browser: Open the file _build/default/examples/js/index.html in the browser

OCaml client

An OCaml client library is provided to interact with the server. Some examples can be found in the examples/ directory.

Docs

See src/irmin-client/client_intf.ml

Protocol

A specification of the wire protocol can be found in PROTOCOL.md

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].