
Security News
/Research
Wallet-Draining npm Package Impersonates Nodemailer to Hijack Crypto Transactions
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
wasm-brainfuck
Advanced tools
Do you want to write blazing-fast WebAssembly code in a practially useless esoteric programming language?
Do you enjoy overcomplicating everything for bragging rights?
Are you a connoisseur of profanity-laden tech?
If any of those are true, then wasm-brainfuck
is the Brainfuck-to-WebAssembly compiler for you!
$ npm install fuck
import { Brainfuck } from "wasm-brainfuck";
const program = new Brainfuck(`
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]
>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.
>>+.>++.
`);
const result = program.execute("input");
console.log(result.output); // 'Hello World!\n'
Brainfuck operates on an array of 30,000 8-bit memory cells by default.
A data pointer, initially set to 0
, keeps track of what cell to operate on.
Command | Description |
---|---|
> | Increment the data pointer |
< | Decrement the data pointer |
+ | Increment the byte at the data pointer |
- | Decrement the byte at the data pointer |
. | Output the byte at the data pointer as a character |
, | Input a character and store it in the byte at the data pointer |
[ | Jump to instruction after the matching ] if the byte at the data pointer is 0 |
] | Jump back to the matching [ if the byte at the data pointer is not 0 . |
All characters other than ><+-.,[]
are considered comments and are ignored.
wasm-brainfuck
uses 30,000 memory cells by default, but this can be customized at compile time.
When the data pointer is moved out of range, it wraps back around to the other side of the array.
const program = new Brainfuck("+.>+.", { memorySize: 100_000 });
End-of-file conditions aren't handled consistently in Brainfuck implementations.
By default, EOF input is a no-op, leaving the memory cell unchanged.
For flexibility, wasm-brainfuck
allows EOF behavior to be set at compile time to map EOF to 0
or 255
.
import { EofBehavior } from "wasm-brainfuck";
const program = new Brainfuck("+.>+.", { eofBehavior: EofBehavior.SetZero });
We recommend using np.
FAQs
Blazing-fast Brainfuck compiler for WebAssembly
The npm package wasm-brainfuck receives a total of 1 weekly downloads. As such, wasm-brainfuck popularity was classified as not popular.
We found that wasm-brainfuck demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
/Research
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.