···967967 mutable misses : int;
968968 }
969969970970- let create ~cache_dir ~max_size () = {
970970+ let default_cache_dir () =
971971+ (* Use XDG cache directory for storing HTTP cache *)
972972+ let xdg = Xdg.create ~env:Sys.getenv_opt () in
973973+ let cache_home = Xdg.cache_dir xdg in
974974+ let cache_dir = Filename.concat cache_home "ocaml-requests" in
975975+ (* Ensure cache directory exists *)
976976+ if not (Sys.file_exists cache_dir) then
977977+ Unix.mkdir cache_dir 0o755;
978978+ cache_dir
979979+980980+ let create ?(cache_dir = default_cache_dir ()) ~max_size () = {
971981 cache_dir; max_size; size = 0L; hits = 0; misses = 0;
972982 }
973983 end
+5-1
requests/lib/requests.mli
···404404405405 module File : sig
406406 type storage
407407- val create : cache_dir:string -> max_size:int64 -> unit -> storage
407407+ val default_cache_dir : unit -> string
408408+ (** Get the default cache directory using XDG standards *)
409409+410410+ val create : ?cache_dir:string -> max_size:int64 -> unit -> storage
411411+ (** Create a file-based cache storage. Uses XDG cache directory by default *)
408412 end
409413410414 type storage = [