All Projects → Becavalier → Eufa

Becavalier / Eufa

Licence: other
A high efficient utility functions(encryption, machine learning, etc) library written in WebAssembly just for demo.

Programming Languages

javascript
184084 projects - #8 most used programming language
C++
36643 projects - #6 most used programming language
Vue
7211 projects
c
50402 projects - #5 most used programming language
python
139335 projects - #7 most used programming language
shell
77523 projects
HTML
75241 projects

Projects that are alternatives of or similar to Eufa

Countdown
A friendly disk usage counter for macOS
Stars: ✭ 28 (+0%)
Mutual labels:  utility
arxwasm
Port of Arx Libertatis to WebAssembly using Emscripten
Stars: ✭ 28 (+0%)
Mutual labels:  emscripten
LogoRRR
A log viewer which visualises log events such that it is easy to identify problems or events of interest. This app was implemented using Scala and JavaFX, GluonHQ toolchain and GraalVM as platform.
Stars: ✭ 40 (+42.86%)
Mutual labels:  utility
webfont-kit-generator
Create @ font-face kits easily
Stars: ✭ 52 (+85.71%)
Mutual labels:  utility
pymailq
Simple mails queue management
Stars: ✭ 32 (+14.29%)
Mutual labels:  utility
gee
🏵 Gee is tool of stdin to each files and stdout. It is similar to the tee command, but there are more functions for convenience. In addition, it was written as go
Stars: ✭ 65 (+132.14%)
Mutual labels:  utility
shorted-theme
Shorted theme references for Styled Components.
Stars: ✭ 13 (-53.57%)
Mutual labels:  utility
pate
Modern and light-fast CLI app that scans all the desired files of a certain folder and returns a list with the name of the files which contain a certain RegEx pattern
Stars: ✭ 23 (-17.86%)
Mutual labels:  utility
WebAssembly-in-Action
Source code for the book "WebAssembly in Action" (https://www.manning.com/books/webassembly-in-action)
Stars: ✭ 44 (+57.14%)
Mutual labels:  emscripten
faur
⚒️✨ My personal C games framework. 2D graphics, sound, inputs, states, ECS, and misc utils for data, files, math, memory, strings, time, and more. Builds for Linux, Windows, Web, and embedded devices.
Stars: ✭ 55 (+96.43%)
Mutual labels:  emscripten
TycotBot
TycotBot
Stars: ✭ 24 (-14.29%)
Mutual labels:  utility
yamlfmt
A simple opionated yaml formatter that keeps your comments!
Stars: ✭ 27 (-3.57%)
Mutual labels:  utility
Infinite-File-Curtailer
Curtail is a utility program that reads stdin and writes to a file bound by size.
Stars: ✭ 23 (-17.86%)
Mutual labels:  utility
cppreeps
WASM C++ Screeps API and utilities pack (beta, proof-of-concepts)
Stars: ✭ 38 (+35.71%)
Mutual labels:  emscripten
rudash
Rudash - Lodash for Ruby Apps
Stars: ✭ 27 (-3.57%)
Mutual labels:  utility
structs
Golang struct operations.
Stars: ✭ 20 (-28.57%)
Mutual labels:  utility
vmutils
cross platform library to manipulate and extract information of memory regions
Stars: ✭ 22 (-21.43%)
Mutual labels:  utility
increment-activator
Vim Plugin for enhance to increment candidates U have defined.
Stars: ✭ 36 (+28.57%)
Mutual labels:  utility
n2d
An easy to use ESP8266 flash tool with built-in support for the Deauther Project.
Stars: ✭ 136 (+385.71%)
Mutual labels:  utility
isometric-renders
Creates high-resolution isometric screenshots of Minecraft's game objects
Stars: ✭ 42 (+50%)
Mutual labels:  utility

Eufa

A high efficient utility functions library written in webassembly with profiling tools.

Features

  • High efficiency;
  • Automatically caching WebAssembly binary into indexedDB;
  • UMD supported, easy to use in frontend;
  • Part of functions moved from php-src;
  • The maximum availabe memory space is up to 64MB;
  • Profiling tools embedded.

Using

# Install efua through npm
npm install eufa --save

Please move 'eufa-module.wasm' from node_modules to some place where you can fetch it by xhr call.

import eufa from 'eufa';

// Init eufa first
eufa.init('static/eufa-module.wasm', () => {
    console.log(eufa.Encryptor.base64_encode('Hello WebAssembly, hello Eufa :)'));
});

Build

Pre-requisite

Install Emscripten SDK from official installing website.

Commands

# Install dependencies;
npm install

# Build
npm run build;

# Run test;
npm run test

# Run benchmark test;
npm run benchmark

Dependencies

  • Chrome v58 or higher (headless supported)
  • Node v8.2.1
  • NPM v5.3.0
  • Gulp v3.9.1
  • Emsdk (emscripten v1.37.13)
  • Binaryen latest version
  • DLib C++ Library latest version

Classes

  • Math

Eufa.Math.i64_add<int, int>

Eufa.Math.f64_add<double, double>

Eufa.Math.i64_minus<int, int>

Eufa.Math.f64_minus<double, double>

Eufa.Math.i64_multiply<int, int>

Eufa.Math.f64_multiply<double, double>

Eufa.Math.i64_divide<int, int>

Eufa.Math.f64_divide<double, double>

Eufa.Math.i64_abs<int>

Eufa.Math.f64_abs<double>

Eufa.Math.i64_sqrt<int>

Eufa.Math.f64_sqrt<double>

  • String

Eufa.String.capitalize<string>

  • Array

Eufa.Array.num_sort<array>

Eufa.Array.num_rsort<array>

  • Encryptor

Eufa.Encryptor.base64_encode<string>

Eufa.Encryptor.base64_decode<string>

Eufa.Encryptor.md5<string>

Eufa.Encryptor.sha1<string>

  • Cache

Eufa.Cache.set<string, string/number/object/array>

Eufa.Cache.get<string>

Eufa.Cache.del<string>

Eufa.Cache.clear<>

Tools (WIP)

Eufa try embedding some useful wasm profiling tools which wrote in Python, feel free to use them according to the following documentation.

Installation

# Install package;
python3 tools/setup.py install

Using

# Analyze the sections of a wasm module;
eufa-ds --module <path-to-module>

Copyright

The Eufa, MIT License. The PHP License, version 3.01.

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].