ActionHero
cosmopolitan
Our great sponsors
ActionHero | cosmopolitan | |
---|---|---|
6 | 200 | |
2,387 | 14,432 | |
0.2% | - | |
9.2 | 9.8 | |
3 days ago | 4 days ago | |
TypeScript | C | |
Apache License 2.0 | ISC License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ActionHero
-
10 Node.js Frameworks Every Developer Should Know
ActionHero.js is one of the most well-known API frameworks. It will help you quickly develop scalable and reusable Node.js API servers for your projects. ActionHero acts as a toolkit that will allow you to build such API servers that will initially work together with existing applications and platforms. With tens of thousands of users, you can always find the right answers and ideas to ensure a daily efficient workflow with ActionHero.
-
Using Typescript to create a Robust API between your frontend and backend
Two of the major components of the @grouparoo/core application are a Node.js API server and a React frontend. We use Actionhero as the API server, and Next.JS for our React site generator. As we develop the Grouparoo application, we are constantly adding new API endpoints and changing existing ones.
-
Deferring Side-Effects in Node.js until the End of a Transaction
At Grouparoo, we use Actionhero as our Node.js API server and Sequelize for our Object Relational Mapping (ORM) tool - making it easy to work with complex records from our database. Within our Actions and Tasks, we often want to treat the whole execution as a single database transaction - either all the modifications to the database will succeed or fail as a unit. This is really helpful when a single activity may create or modify many database rows.
-
Ask HN: How Long Is Your CI Process?
Hard to say without knowing /what/ you want to accomplish in your CI process, so maybe some open source examples will help:
* A "complex" library (node-resque). In CI (CircleCI) we install deps, compile Typescript to JS, test on 3 versions of node, and build docs. 4 min w/ some parallelization https://app.circleci.com/pipelines/github/actionhero/node-re...
* A web server framework (actionhero): In CI(Github Actions) we install deps, compile Typescript to JS, test on 3 versions of node, and build docs. 7 min w/ some parallelization https://github.com/actionhero/actionhero/actions/runs/801273...
* A Monorepo (Grouparoo): In CI (CircleCI) we install deps, compile Typescript to JS, run migrations, check licenses, test UIs, CLI tools, Plugins, and try out a few different databases. 5 minutes with rather extreme parallelization https://app.circleci.com/pipelines/github/grouparoo/grouparo...
cosmopolitan
-
Ask HN: What Underrated Open Source Project Deserves More Recognition?
Cosmopolitan https://github.com/jart/cosmopolitan and https://justine.lol/cosmopolitan/index.html
Some genius realized that you can actually embed valid win32 programs inside valid posix shell scripts, and found a way to make a C cross-platform solution out of it, meaning that you can write C programs that compile to a single executable that will run on (quoting the site) Linux + Mac + Windows + FreeBSD + OpenBSD + NetBSD + BIOS
It all started from this post.
-
Show HN: Usr/bin/env Docker run
For this .args file, put one argument per line. This will run on start. You can use `/zip/mydepencency.anything` to read from files, but if you have an executable dependency you'll need to extract it first.
You can do this with any software you can compile with comsocc, by adding a call to LoadZipArgs[1] in the main function.
It'seasy to get started, your ideas will branch out as soon as you start playing with it.
[1]: https://github.com/jart/cosmopolitan/blob/master/tool/args/a...
-
Libwebsockets
FWIW there is ongoing work with good progress to add websocket support to redbean (https://github.com/jart/cosmopolitan/pull/967)
-
Actually Portable Vim (With a Cute Vimrc)
The binary was compiled with Cosmopolitan Libc [0], and therefore the binary will execute natively on Linux, Mac, Windows, FreeBSD, OpenBSD, NetBSD, and bare metal (BIOS boot).
I would call that portable.
-
Show HN: PyApp – runtime installer for Python applications
will go on my "to try" list where i already have cosmopolitan [2]. my last setup (windows) was shiv + wine + nsis (used that as pyinstaller had some issues)[2]
[1] https://github.com/jart/cosmopolitan/issues/141#issuecomment...
-
Ask HN: What are some unpopular technologies you wish people knew more about?
- cosmopolitan: https://github.com/jart/cosmopolitan
-
A standalone zero-dependency Lisp for Linux
Just compile regular Lisp with cosmopolitan. Then the same binary will run on windows, linux, mac, and BIOS. /s
This has been done with Lua, see: https://github.com/jart/cosmopolitan/issues/61
-
Cosmopolitan Third Edition
Cool. Somebody still needs to teach sscanf how to parse floats though. https://github.com/jart/cosmopolitan/issues/456
The code to do it would probably go in here: https://github.com/jart/cosmopolitan/blob/master/libc/stdio/...
I mean, I know why it's not done (parsing floats correctly is a lot harder than it would at first seem to be) and I'm not complaining, more like hinting to some of the fine people that haunt this website who might find such a task interesting.
There's so much cool stuff in this post.
https://github.com/jart/cosmopolitan/releases/download/3.0.1... is 213MB file which contains "fat binaries" (single binaries that execute on a bewildering array of hardware platforms and operating systems) for dozens of programs, including zip, curl, wget, python, ctags and even my own Datasette Python application!
It's absolutely wild that this works.
I just tried it out (on macOS). I downloaded and extracted that zip and did this:
cd ~/Downloads/cosmos-3.0.1/bin
What are some alternatives?
Express - Fast, unopinionated, minimalist web framework for node.
libc - libc targeted for embedded systems usage. Reduced set of functionality (due to embedded nature). Chosen for portability and quick bringup.
src - Read-only git conversion of OpenBSD's official CVS src repository. Pull requests not accepted - send diffs to the tech@ mailing list.
llvm-project - The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
SDL - Simple Directmedia Layer
luastatic - Build a standalone executable from a Lua program.
v - Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io
fastify - Fast and low overhead web framework, for Node.js
open_iot - ocpu
zig-window - window client library
linux - Linux kernel source tree
loopback-next - LoopBack makes it easy to build modern API applications that require complex integrations.