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.0))) ; 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 (and (>= 3.20) (< 3.21)))
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 (uuseg (>= 17.0.0))
76 (yojson (>= 3.0.0))
77 (lwt_ppx (>= 5.9.1))
78 (ppx_deriving_yojson (>= 3.9.1))
79 ppx_rapper
80 ppx_rapper_lwt
81 (webauthn (>= 0.2.0))
82 (alcotest :with-test)
83 crunch
84 (ocamlformat-mlx :with-dev-setup)
85 (ocamlmerlin-mlx :with-dev-setup)))
86
87(package
88 (name frontend)
89 (allow_empty)
90 (depends
91 (ocaml (= 5.2.1))
92 (dune (and (>= 3.20) (< 3.21)))
93 lwt
94 melange
95 melange-json
96 melange-json-native
97 (mlx (>= 0.11))
98 (reason-react (>= 0.16.0))
99 (reason-react-ppx (>= 0.16.0))
100 server-reason-react))
101
102(package
103 (name mist)
104 (synopsis "Atproto repo functionality")
105 (allow_empty)
106 (depends
107 (ocaml (= 5.2.1))
108 (dune (and (>= 3.20) (< 3.21)))
109 lwt
110 (core_unix (>= 0.16.0))
111 (re (>= 1.13.2))
112 (yojson (>= 3.0.0))
113 (lwt_ppx (>= 5.9.1))
114 (ppx_deriving_yojson (>= 3.9.1))
115 (alcotest :with-test)))
116
117(package
118 (name ipld)
119 (synopsis "A DASL-compliant implementation of some IPLD formats")
120 (description "Currently includes DAG-CBOR, CIDv1, and CARv1")
121 (allow_empty)
122 (depends
123 (ocaml (= 5.2.1))
124 (dune (and (>= 3.20) (< 3.21)))
125 lwt
126 (digestif (>= 1.2.0))
127 (multibase (>= 0.1.0))
128 (yojson (>= 3.0.0))
129 (lwt_ppx (>= 5.9.1))
130 (alcotest :with-test)))
131
132(package
133 (name kleidos)
134 (synopsis "Atproto-flavour k256 and p256 signing and verification")
135 (allow_empty)
136 (depends
137 (ocaml (= 5.2.1))
138 (dune (and (>= 3.20) (< 3.21)))
139 (hacl-star (>= 0.7.2))
140 (mirage-crypto-ec (>= 2.0.1))
141 (multibase (>= 0.1.0))))
142
143(package
144 (name hermes)
145 (synopsis "Type-safe XRPC client for ATProto")
146 (description "XRPC client with PPX extensions for type-safe API calls")
147 (allow_empty)
148 (depends
149 (ocaml (= 5.2.1))
150 (dune (and (>= 3.20) (< 3.21)))
151 lwt
152 (cohttp-lwt-unix (>= 6.1.1))
153 (uri (>= 4.4.0))
154 (yojson (>= 3.0.0))
155 (base64 (>= 3.5.0))
156 (lwt_ppx (>= 5.9.1))
157 (ppx_deriving_yojson (>= 3.9.1))))
158
159(package
160 (name hermes-cli)
161 (synopsis "Code generator for Hermes from ATProto lexicons")
162 (allow_empty)
163 (depends
164 (ocaml (= 5.2.1))
165 (dune (and (>= 3.20) (< 3.21)))
166 (cmdliner (>= 1.2.0))
167 (yojson (>= 3.0.0))
168 (fmt (>= 0.9.0))
169 (fpath (>= 0.7.3))))
170
171(package
172 (name hermes_ppx)
173 (synopsis "PPX extension for Hermes XRPC calls")
174 (allow_empty)
175 (depends
176 (ocaml (= 5.2.1))
177 (dune (and (>= 3.20) (< 3.21)))
178 (ppxlib (>= 0.32.0))))
179
180(package
181 (name tailwindcss)
182 (allow_empty))
183
184(dialect
185 (name mlx)
186 (implementation
187 (extension mlx)
188 (merlin_reader mlx)
189 (preprocess
190 (run mlx-pp %{input-file}))))