Source file core_random.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
let () = Caml.Random.self_init ()
let rec chars result n =
if n > 0
then chars (List.cons (Char.chr (Caml.Random.int 255)) result) (n - 1)
else result
;;
let bytes nr = chars [] nr
let base64 nr =
Base64.encode_string
~alphabet:Base64.uri_safe_alphabet
(bytes nr |> List.to_seq |> String.of_seq)
;;
let start () = Lwt.return ()
let stop () = Lwt.return ()
let lifecycle = Core_container.create_lifecycle "random" ~start ~stop
let register () = Core_container.Service.create lifecycle