objective categorical abstract machine language personal data server
1(lang dune 3.20)
2(using melange 0.1)
3
4(name pegasus)
5
6(generate_opam_files true)
7
8(source (github futurGH/pegasus))
9(authors "futurGH")
10(maintainers "futurGH")
11
12(license MPL-2.0)
13
14(pin ; fixes build on macOS 26
15 (url "git+https://github.com/mcksan/pg_query-ocaml.git")
16 (package (name pg_query)))
17
18(pin ; build broken on macOS for some reason
19 (url "git+https://github.com/janestreet/bin_prot.git#03c783d682f67db665dca44a1b34d41cd16e1e3f")
20 (package
21 (name bin_prot)
22 (version v0.17~preview.128.20+135))) ; this is actually v0.16~preview.128.20+135 but core requires >=v0.17
23
24(pin ; these 4 all need to be pinned or they'll conflict
25 (url "git+https://github.com/lthms/dream.git#h2-0-13") ; unmerged patch that prevents conflict with letters
26 (package (name dream)))
27 (pin
28 (url "git+https://github.com/lthms/dream.git#h2-0-13") ; unmerged patch that prevents conflict with letters
29 (package (name dream-httpaf)))
30(pin
31 (url "git+https://github.com/roddyyaga/ppx_rapper.git#5b0e62def2d5cc6cbe3dedec1ecb289bee350f9a")
32 (package (name ppx_rapper)))
33(pin
34 (url "git+https://github.com/roddyyaga/ppx_rapper.git#5b0e62def2d5cc6cbe3dedec1ecb289bee350f9a")
35 (package (name ppx_rapper_lwt)))
36
37(pin ; applied fix from anmonteiro/gluten#85
38 (url "git+https://github.com/futurGH/gluten#956e753dc0ee81dbe53f0979fe89d57d960e7856")
39 (package
40 (name gluten-lwt)
41 (version 0.5.2)))
42
43(pin ; version on opam requires too high a melange version
44 (url "git+https://github.com/melange-community/melange-webapi.git#80c6ededd06cc66b75445d1ed5c855e050b156a0")
45 (package
46 (name melange-webapi)
47 (version v0.21.0)))
48
49(package
50 (name pegasus)
51 (synopsis "An atproto Personal Data Server implementation")
52 (description "Eventually")
53 (allow_empty)
54 (depends
55 (ocaml (= 5.2.1))
56 dune
57 lwt
58 (aws-s3-lwt (>= 4.8.1))
59 (caqti (>= 1.9.0))
60 (caqti-driver-sqlite3 (>= 1.9.0))
61 (caqti-lwt (>= 1.9.0))
62 (cohttp (>= 6.1.1))
63 (cohttp-lwt-unix (>= 6.1.1))
64 (dns-client-lwt (>= 10.2.0))
65 dream
66 (emile (>= 1.1))
67 (letters (>= 0.4.0))
68 (html_of_jsx (>= 0.0.7))
69 (re (>= 1.13.2))
70 (safepass (>= 3.1))
71 server-reason-react
72 (timedesc (>= 3.1.0))
73 (uri (>= 4.4.0))
74 (uuidm (>= 0.9.10))
75 (yojson (>= 3.0.0))
76 (lwt_ppx (>= 5.9.1))
77 (ppx_deriving_yojson (>= 3.9.1))
78 ppx_rapper
79 ppx_rapper_lwt
80 (webauthn (>= 0.2.0))
81 (alcotest :with-test)
82 crunch
83 (ocamlformat-mlx :with-dev-setup)
84 (ocamlmerlin-mlx :with-dev-setup)))
85
86(package
87 (name frontend)
88 (allow_empty)
89 (depends
90 (ocaml (= 5.2.1))
91 dune
92 lwt
93 melange
94 melange-json
95 melange-json-native
96 (mlx (>= 0.11))
97 (reason-react (>= 0.16.0))
98 (reason-react-ppx (>= 0.16.0))
99 server-reason-react))
100
101(package
102 (name mist)
103 (synopsis "Atproto repo functionality")
104 (allow_empty)
105 (depends
106 (ocaml (= 5.2.1))
107 dune
108 lwt
109 (core_unix (>= 0.16.0))
110 (re (>= 1.13.2))
111 (yojson (>= 3.0.0))
112 (lwt_ppx (>= 5.9.1))
113 (ppx_deriving_yojson (>= 3.9.1))
114 (alcotest :with-test)))
115
116(package
117 (name ipld)
118 (synopsis "A DASL-compliant implementation of some IPLD formats")
119 (description "Currently includes DAG-CBOR, CIDv1, and CARv1")
120 (allow_empty)
121 (depends
122 (ocaml (= 5.2.1))
123 dune
124 lwt
125 (digestif (>= 1.2.0))
126 (multibase (>= 0.1.0))
127 (yojson (>= 3.0.0))
128 (lwt_ppx (>= 5.9.1))
129 (alcotest :with-test)))
130
131(package
132 (name kleidos)
133 (synopsis "Atproto-flavour k256 and p256 signing and verification")
134 (allow_empty)
135 (depends
136 (ocaml (= 5.2.1))
137 dune
138 (hacl-star (>= 0.7.2))
139 (mirage-crypto-ec (>= 2.0.1))
140 (multibase (>= 0.1.0))))
141
142(package
143 (name hermes)
144 (synopsis "Type-safe XRPC client for ATProto")
145 (description "XRPC client with PPX extensions for type-safe API calls")
146 (allow_empty)
147 (depends
148 (ocaml (= 5.2.1))
149 dune
150 lwt
151 (cohttp-lwt-unix (>= 6.1.1))
152 (uri (>= 4.4.0))
153 (yojson (>= 3.0.0))
154 (base64 (>= 3.5.0))
155 (lwt_ppx (>= 5.9.1))
156 (ppx_deriving_yojson (>= 3.9.1))))
157
158(package
159 (name hermes-cli)
160 (synopsis "Code generator for Hermes from ATProto lexicons")
161 (allow_empty)
162 (depends
163 (ocaml (= 5.2.1))
164 dune
165 (cmdliner (>= 1.2.0))
166 (yojson (>= 3.0.0))
167 (fmt (>= 0.9.0))
168 (fpath (>= 0.7.3))))
169
170(package
171 (name hermes_ppx)
172 (synopsis "PPX extension for Hermes XRPC calls")
173 (allow_empty)
174 (depends
175 (ocaml (= 5.2.1))
176 dune
177 (ppxlib (>= 0.32.0))))
178
179(package
180 (name tailwindcss)
181 (allow_empty))
182
183(dialect
184 (name mlx)
185 (implementation
186 (extension mlx)
187 (merlin_reader mlx)
188 (preprocess
189 (run mlx-pp %{input-file}))))