packages.mirism: init server

This commit is contained in:
陈浩南 2024-10-20 01:52:17 +08:00
parent eb886c0c6e
commit 5c5acd7dee
4 changed files with 26 additions and 4 deletions

View File

@ -103,7 +103,7 @@ inputs: rec
py4vasp = inputs.pkgs.callPackage ./py4vasp.nix { src = inputs.topInputs.py4vasp; };
pocketfft = inputs.pkgs.callPackage ./pocketfft.nix { src = inputs.topInputs.pocketfft; };
spectroscopy = inputs.pkgs.callPackage ./spectroscopy.nix { src = inputs.topInputs.spectroscopy; };
mirism = inputs.pkgs.callPackage ./mirism.nix { inherit biu; stdenv = inputs.pkgs.clang18Stdenv; };
mirism = inputs.pkgs.callPackage ./mirism { inherit biu; stdenv = inputs.pkgs.clang18Stdenv; };
fromYaml = content: builtins.fromJSON (builtins.readFile
(inputs.pkgs.runCommand "toJSON" {}

View File

@ -10,10 +10,11 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
endif()
find_package(biu REQUIRED)
find_package(httplib REQUIRED)
add_executable(mirism src/main.cpp)
target_compile_features(mirism PUBLIC cxx_std_23)
target_link_libraries(mirism PRIVATE biu::biu)
target_link_libraries(mirism PRIVATE biu::biu httplib::httplib)
install(TARGETS mirism RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})

View File

@ -1,7 +1,7 @@
{ stdenv, cmake, pkg-config, biu }: stdenv.mkDerivation
{ stdenv, cmake, pkg-config, biu, httplib }: stdenv.mkDerivation
{
name = "mirism";
src = ./.;
buildInputs = [ biu ];
buildInputs = [ biu httplib ];
nativeBuildInputs = [ cmake pkg-config ];
}

View File

@ -0,0 +1,21 @@
# include <biu.hpp>
# include <httplib.h>
int main()
{
using namespace biu::literals;
httplib::SSLServer srv("/var/lib/acme/debug.mirism.one/fullchain.pem",
"/var/lib/acme/debug.mirism.one/key.pem");
srv.Get("/", [](const httplib::Request& req, httplib::Response& res) {
std::cout << "{}"_f(req.headers) << std::endl;
httplib::Client cli("https://github.com");
auto upstream_res = cli.Get("/");
res.headers = upstream_res->headers;
res.body = upstream_res->body;
res.status = upstream_res->status;
std::cout << "{}"_f(upstream_res->headers) << std::endl;
std::cout << "{}"_f(upstream_res->body) << std::endl;
});
srv.listen("127.0.0.1", 15641);
}