All Projects → jart → Cosmopolitan

jart / Cosmopolitan

Licence: isc
build-once run-anywhere c library

Programming Languages

c
50402 projects - #5 most used programming language
assembly
5116 projects
shell
77523 projects
Makefile
30231 projects
emacs lisp
2029 projects
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to Cosmopolitan

gsmartcontrol
GSmartControl - Hard disk drive and SSD health inspection tool
Stars: ✭ 183 (-97.11%)
Mutual labels:  freebsd, openbsd, darwin, netbsd
Libtuntap
The portable Tun/Tap devices configuration utility
Stars: ✭ 107 (-98.31%)
Mutual labels:  freebsd, openbsd, netbsd
osutil
Go library to easily detect current operating system, current Linux distribution, macOS version and more...
Stars: ✭ 22 (-99.65%)
Mutual labels:  freebsd, openbsd, netbsd
Mg
Micro (GNU) Emacs-like text editor ❤️ public-domain
Stars: ✭ 117 (-98.15%)
Mutual labels:  freebsd, openbsd, netbsd
Postinstall
💻 Bash Script to automate post-installation steps
Stars: ✭ 104 (-98.36%)
Mutual labels:  freebsd, openbsd, netbsd
Awesome-BSD-Ports-Programs-And-Projects
A Repo Detailing BSD Ports, Programs, and Projects.
Stars: ✭ 46 (-99.27%)
Mutual labels:  freebsd, openbsd, netbsd
packetdrill
packetdrill with UDPLite and SCTP support and bug fixes for FreeBSD
Stars: ✭ 37 (-99.41%)
Mutual labels:  freebsd, openbsd, netbsd
O
🌀 Text editor suitable for writing git commit messages and editing Markdown files. Can build executables and jump to errors at the press of `ctrl-space`, for several programming languages. Can format code with `ctrl-w`. Provides general syntax highlighting, rainbow parenthesis and cut/paste portals. o is intentionally limited to VT100.
Stars: ✭ 54 (-99.15%)
Mutual labels:  freebsd, openbsd, polyglot
Awesome Bsd
A collection of awesome BSD related stuff
Stars: ✭ 236 (-96.27%)
Mutual labels:  freebsd, openbsd, netbsd
InitKit
Neo-InitWare is a modular, cross-platform reimplementation of the systemd init system. It is experimental.
Stars: ✭ 364 (-94.24%)
Mutual labels:  freebsd, openbsd, netbsd
Ecominit
eComInit is a free init system and service manager designed to scale from lightweight desktops to web-scale cloud deployments. It aims to offer feature-parity with systemd but with a modular, portable architecture compliant with software engineering best-practice.
Stars: ✭ 352 (-94.43%)
Mutual labels:  freebsd, openbsd, netbsd
psutil
Cross-platform lib for process and system monitoring in Python
Stars: ✭ 8,488 (+34.22%)
Mutual labels:  freebsd, openbsd, netbsd
Qtfm
Qt File Manager
Stars: ✭ 73 (-98.85%)
Mutual labels:  freebsd, openbsd, netbsd
Ruby Vmstat
A focused and fast library to gather memory, cpu, network, load avg and disk information
Stars: ✭ 68 (-98.92%)
Mutual labels:  freebsd, openbsd, netbsd
uac
UAC is a Live Response collection script for Incident Response that makes use of native binaries and tools to automate the collection of AIX, Android, ESXi, FreeBSD, Linux, macOS, NetBSD, NetScaler, OpenBSD and Solaris systems artifacts.
Stars: ✭ 260 (-95.89%)
Mutual labels:  freebsd, openbsd, netbsd
Fisy Fuzz
This is the full file system fuzzing framework that I presented at the Hack in the Box 2020 Lockdown Edition conference in April.
Stars: ✭ 110 (-98.26%)
Mutual labels:  freebsd, openbsd, netbsd
Awesome Unix
All the UNIX and UNIX-Like: Linux, BSD, macOS, Illumos, 9front, and more.
Stars: ✭ 973 (-84.61%)
Mutual labels:  freebsd, openbsd, netbsd
Objfw
[Official Mirror] A portable framework for the Objective-C language.
Stars: ✭ 161 (-97.45%)
Mutual labels:  freebsd, openbsd, netbsd
WendzelNNTPd
A usable and IPv6-ready Usenet-server (NNTP daemon). It is portable (Linux/*BSD/*nix), supports AUTHINFO authentication, contains ACL as well as role based ACL and provides "invisible" newsgroups. It can run on MySQL and SQLite backends.
Stars: ✭ 43 (-99.32%)
Mutual labels:  freebsd, openbsd, netbsd
Daemonize
daemonize is a library for writing system daemons in Python.
Stars: ✭ 396 (-93.74%)
Mutual labels:  freebsd, openbsd, netbsd

Cosmopolitan Honeybadger

Cosmopolitan

Cosmopolitan Libc makes C a build-once run-anywhere language, like Java, except it doesn't need an interpreter or virtual machine. Instead, it reconfigures stock GCC and Clang to output a POSIX-approved polyglot format that runs natively on Linux + Mac + Windows + FreeBSD + OpenBSD + NetBSD + BIOS with the best possible performance and the tiniest footprint imaginable.

Background

For an introduction to this project, please read the αcτµαlly pδrταblε εxεcµταblε blog post and cosmopolitan libc website. We also have API documentation.

Getting Started

If you're doing your development work on Linux or BSD then you need just five files to get started. Here's what you do on Linux:

wget https://justine.lol/cosmopolitan/cosmopolitan-amalgamation-1.0.zip
unzip cosmopolitan-amalgamation-1.0.zip
printf 'main() { printf("hello world\\n"); }\n' >hello.c
gcc -g -Os -static -nostdlib -nostdinc -fno-pie -no-pie -mno-red-zone \
  -fno-omit-frame-pointer -pg -mnop-mcount \
  -o hello.com.dbg hello.c -fuse-ld=bfd -Wl,-T,ape.lds \
  -include cosmopolitan.h crt.o ape.o cosmopolitan.a
objcopy -S -O binary hello.com.dbg hello.com

You now have a portable program. Please note that your APE binary will assimilate itself as a conventional resident of your platform after the first run, so it can be fast and efficient for subsequent executions.

./hello.com
bash -c './hello.com'  # zsh/fish workaround (we upstreamed patches)

So if you intend to copy the binary to Windows or Mac then please do that before you run it, not after.

MacOS

If you're developing on MacOS you can install the GNU compiler collection for x86_64-elf via homebrew:

brew install x86_64-elf-gcc

Then in the above scripts just replace gcc and objcopy with x86_64-elf-gcc and x86_64-elf-objcopy to compile your APE binary.

Windows

If you're developing on Windows then you need to download an x86_64-pc-linux-gnu toolchain beforehand. See the Compiling on Windows tutorial. It's needed because the ELF object format is what makes universal binaries possible.

Source Builds

Cosmopolitan can be compiled from source on any Linux distro. GNU make needs to be installed beforehand. This is a freestanding hermetic repository that bootstraps using a vendored static gcc9 executable. No further dependencies are required.

wget https://justine.lol/cosmopolitan/cosmopolitan-1.0.tar.gz
tar xf cosmopolitan-1.0.tar.gz  # see releases page
cd cosmopolitan
make -j16
o//examples/hello.com
find o -name \*.com | xargs ls -rShal | less

Support Vector

Platform Min Version Circa
AMD K8 Venus 2005
Intel Core 2006
New Technology Vista 2006
GNU/Systemd 2.6.18 2007
XNU's Not UNIX! 15.6 2018
FreeBSD 12 2018
OpenBSD 6.4 2018
NetBSD 9.1 2020
GNU Make 4.0 2015
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].