Skip to content

Instantly share code, notes, and snippets.

View theoparis's full-sized avatar

Theo Paris theoparis

View GitHub Profile
@theoparis
theoparis / main.rs
Last active March 1, 2023 16:46
rust + hyper http dynamic routing
#![feature(async_closure)]
use crate::handler::router::handle;
use anyhow::Result;
use futures::future::FutureExt;
use handler::router::DynamicRouter;
use hyper::{
service::{make_service_fn, service_fn},
Body, Response, Server, StatusCode,
};
use matchit::Router;
@theoparis
theoparis / build.zig
Created October 30, 2022 03:56
build.zig wip errors
const std = @import("std");
const builtin = @import("builtin");
const builder = @import("builder/main.zig");
const Features = std.Target.x86.Feature;
const kernel_build_mode: std.builtin.Mode = .Debug;
const user_build_mode: std.builtin.Mode = .ReleaseSafe;
const target = blk: {
@theoparis
theoparis / build.sh
Last active October 28, 2022 22:36
build statically linked cross gcc compiler (assumes you have downloaded the sources and prequsities for gcc)
#!/bin/sh
set -e
TARGET=${TARGET:-"x86_64-linux-musl"}
PREFIX=${PREFIX:-"/usr/local/dev/gcc"}
CC=${CC:-"gcc"}
CXX=${CXX-"g++"}
LANGUAGES=${LANGUAGES:-"c,c++,go"}
./configure \
const std = @import("std");
const c = @cImport({
// linux networking headers for modifying interfaces
@cInclude("ifaddrs.h");
@cInclude("net/if.h");
@cInclude("sys/ioctl.h");
});
pub const SIOCGIFINDEX = 0x8933;
pub const SIOCGIFFLAGS = 0x8934;
@theoparis
theoparis / build.sh
Last active November 20, 2022 09:00
build llvm and clang 16 statically
#!/bin/sh
set -e
cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=MinSizeRel \
-DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lldb;lld;mlir" \
-DLLVM_DEFAULT_TARGET_TRIPLE="x86_64-unknown-linux-musl" \
-DCMAKE_EXE_LINKER_FLAGS="-static" \
-DLLVM_BUILD_STATIC=ON \
-DLLVM_USE_LINKER=mold \
@theoparis
theoparis / uncrustify.cfg
Created October 19, 2022 03:58
uncrustify config for c++
indent_with_tabs = 2
align_with_tabs = true
input_tab_size = 2
output_tab_size = 2
indent_columns = 2
indent_paren_close = 2
indent_continue = 2
nl_func_call_start_multi_line = true
nl_func_call_args_multi_line = true
nl_func_call_end_multi_line = true
@theoparis
theoparis / .config
Last active October 21, 2022 05:31
linux 6.0.1 kernel config
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 6.0.1 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.0"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=120200
CONFIG_CLANG_VERSION=0
CONFIG_AS_IS_GNU=y
CONFIG_AS_VERSION=23900
@theoparis
theoparis / make.conf
Created August 25, 2022 05:16
gentoo make.conf
JOBS="12"
COMMON_FLAGS="-march=native -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"
MAKEOPTS="-j${JOBS} -l${JOBS}"
EMERGE_DEFAULT_OPTS="--jobs=${JOBS} --load-average=${JOBS}"
FEATURES="binpkg-logs buildpkg cgroup collision-protect downgrade-backup ipc-sandbox network-sandbox parallel-install sign"
@theoparis
theoparis / toolchain.py
Created August 18, 2022 08:06
python gccgo cross toolchain
#!/usr/bin/env pypy3
""" Cross-compiler toolchain build script
Possible target platforms are:
aarch64 ARM64
amd64 AMD64 (x86-64, x64)
arm32 ARM
ia32 IA-32 (x86, i386)
ia64 IA-64 (Itanium)
mips32 MIPS little-endian 32b
@theoparis
theoparis / README.md
Created June 23, 2022 23:10
Get minecraft jar via nushell

Usage

let version = (fetch_version --version-id 1.19 --version-type release)

fetch_jar $version --download-type client