
Research
Security News
Malicious npm Packages Target BSC and Ethereum to Drain Crypto Wallets
Socket uncovered four malicious npm packages that exfiltrate up to 85% of a victimβs Ethereum or BSC wallet using obfuscated JavaScript.
CAO is a modular, offline-first command-line tool that lets you convert files between dozens (eventually hundreds) of formats β images, text, geospatial, and more. Designed to be clean, extensible, and completely offline, CAO also includes plugin support for community-driven converters.
CAO is currently distributed via GitHub.
git clone https://github.com/jackmcnulty/cao.git
cd cao
pip install -e .
Youβll need:
click
, Pillow
, geopandas
, pandas
, shapely
, fiona
, pyarrow
(check setup.py for full list)cao convert input.png output.jpg
cao convert input.txt output.png
cao convert data.geojson output.csv
CAO will determine what type of content you're converting and route it to the right source and target.
cao from png
cao from geojson
cao from csv
Outputs something like:
You can convert 'geojson' into:
- csv
- shp
- parquet
CAO supports installable converters and features via plugins.
cao plugin list
cao plugin install ./my_plugin.py
cao plugin install ./plugin_bundle.zip
cao plugin remove my_plugin
cao plugin reload
cao plugin bundle my_plugins.zip
from cao.sources.base import BaseSource
from cao.registry import ConverterRegistry
class HelloSource(BaseSource):
def extract(self, path):
return {"type": "text", "data": "Hello from source"}
@classmethod
def supported_extensions(cls):
return ["hello"]
@classmethod
def data_type(cls):
return "text"
ConverterRegistry.register_source("hello", HelloSource)
from cao.targets.base import BaseTarget
from cao.registry import ConverterRegistry
class UpperTextTarget(BaseTarget):
def write(self, data, path):
with open(path, "w") as f:
f.write(data["data"].upper())
@staticmethod
def accepts_type(data_type):
return data_type == "text"
ConverterRegistry.register_target("txt", lambda ext: UpperTextTarget())
cao/
βββ cao/
β βββ cli.py
β βββ engine.py
β βββ registry.py
β βββ sources/
β β βββ image/
β β βββ geospatial/
β βββ targets/
β β βββ text/
β β βββ image/
β β βββ geospatial/
β βββ plugins/
βββ README.md
βββ setup.py
βββ pyproject.toml
Want to contribute?
CONTRIBUTING.md
for how to add new convertersMIT License β free to use, modify, and share.
FAQs
Convert Anything Offline β a modular CLI tool for file format conversion.
We found that convert-offline demonstrated a healthy version release cadence and project activity because the last version was released less than 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.
Research
Security News
Socket uncovered four malicious npm packages that exfiltrate up to 85% of a victimβs Ethereum or BSC wallet using obfuscated JavaScript.
Security News
TC39 advances 9 JavaScript proposals, including Array.fromAsync, Error.isError, and Explicit Resource Management, which are now headed into the ECMAScript spec.
Security News
Vite releases Rolldown-Vite, a Rust-based bundler preview offering faster builds and lower memory usage as a drop-in replacement for Vite.