Code Monkey home page Code Monkey logo

fosslife / devtools-x Goto Github PK

View Code? Open in Web Editor NEW
1.0K 7.0 49.0 5.95 MB

Collection of offline first developer utilities available as non-electron desktop application. all in one place, cross-platform, 10MB app!

Home Page: https://devtools.fosslife.com/

License: MIT License

HTML 0.26% Rust 4.59% TypeScript 88.58% CSS 4.35% JavaScript 2.22%
developer-tools devtools devtoys linux macos tauri windows hacktoberfest hacktoberfest-accepted devutils

devtools-x's Introduction

DEVTOOLS-X

devutils is macOS-only, and devtoys is Windows-only.
So here's DevTools-X -- an x-platform non-electron, collection of dev-tools that is lighter, safer, and feature rich (currenltly 41 modules and growing) development utilities.

Note: Application is stable but there are too many modules and all are not well tested on all 3 OSes. Please report any bugs you find.

In any case if the app doesn't render/load anything, just delete the file if exists or create settings.json if doesn't exist at: https://docs.rs/tauri/latest/tauri/api/path/fn.data_dir.html

Logo

Badges

MIT License GitHub issues GitHub stars Latest release

Screenshot

Screenshot 2024-04-01 at 12 20 37 PM

Installation

Download prebuilt binaries

This project runs a github CI to build binaries for all platforms. Head to Releases and download the binary as per your requirements.

NOTE FOR MACOS USERS, you need this to run the app as binaries are not signed yet:

xattr -r -c /Applications/dev-tools.app

Compile yourself

Download the relevant package from Github Releases section, and start using it! :D

If you prefer compiling your own package, make sure you have all tauri pre-requisites installed:

https://tauri.app/v1/guides/getting-started/prerequisites

Then just clone and open the project in terminal and run

yarn tauri build

Features

Checkout features.md for a short video demo on every feature.

DevTools-X has about 41 features as of now, and growing.

The full list in below, One big selling point of DevTools-X is it uses monaco-editor, the editor used by vscode, so tons of editor features are available to you right from the start, as if you are using vscode.

  1. Basic REST client
  2. Unix epoch timestamp convertor
  3. Graphical ping
  4. Strong password generator
  5. QR code generator
  6. Code format/minify tools
  7. React live scratchpad
  8. Lorem Ipsum text generator
  9. Image compressor/convertor with preview
  10. Pastebin with gist
  11. Programming scratchpad with many languages support
  12. Bulk image compressor with Rust SIMD
  13. Base64 text encode/decode
  14. Base64 image encode/decode
  15. Text hash calculate (md5, sha etc)
  16. Files MD5
  17. JSON formatter/minify etc
  18. JWT decode
  19. Number convertor
  20. SQL formatter
  21. Color convertor/picker
  22. Code/text diff with syntax highlight
  23. Markdown edit/preview
  24. YAML JSON convertor
  25. Multiple units convertor (length/pressure whatnot)
  26. Text gzip/deflate/zlib compression
  27. Stateless password generator
  28. Generate programming Types and Interfaces from json
  29. URL Parser
  30. HTML editor and preview
  31. PDF Reader
  32. Cron edit and explain
  33. UUID generator
  34. Regex Tester
  35. Generate mock data with Faker
  36. CSS live playground
  37. QR Code Reader
  38. Image cropper
  39. HMAC Generator
  40. Color palette generator
  41. Color Harmonies generator

Contributing

Contributions are always welcome!

See contributing.md for ways to get started.

Please adhere to this project's code of conduct.

Tech Stack

DevTools-X is NOT WRITTEN IN ELECTRON.

Client: React, Mantine

Backend: Rust

That should be enough to tell you it's built on top of Tauri, So we get best of the both worlds: Web + Rust. Web to create beautiful cross-platform UI, Rust to create fast and small applications. Tauri bundle is super small, about 10MB of installer.

Contributors

FAQ

Migrate settings?

There's a backup/restore feature available in settings drawer. you can backup manually as well, copy settings.json from appDir

App is not starting/showing empty screen

Most likely your db is corrupt. delete settings.json file in your appDir. Create a issue if you can't find it.

I do not like the order of modules

All module can be rearranged with drag-n-drop. order is saved in a local db. you can edit this file manually as well, it's a simple json file.

Do I need to know Rust to get started?

Absolutely not. Many modules are written in pure JS, rust is only needed for performance and security sensitive features like calculating hash or compressing image etc.

NEED HELP WITH:

  • More features
  • Testing
  • Can the logo be improved?
  • Regex Tester is kinda broken, monaco gives a headache
  • Fix ALL FIXME: s and TODO: s

Acknowledgements

This project exists solely because I was fed up switching between different tools on different OSes. Please do star their github repositories, they have inspired many modules in devtools-x

License

MIT

Star History

Star History Chart

devtools-x's People

Contributors

dependabot[bot] avatar kuyoonjo avatar sparkenstein avatar thijszijdel avatar uditkarode avatar yemikudaisi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

devtools-x's Issues

[Feature Request] Mock API

Would it be an overkill to introduce a Mock API tool?

Considering, devtools-x already has Faker integration, we could leverage Faker to pre-populate an embedded database with low footprint, something like lowdb which is essentially just a flat file database (JSON).

Essentially, we'll be looking at something a feature that will enable:

  • Creating a project.
  • Creating resources within projects.
  • Add properties within resources.
  • Generate dynamic endpoints for endpoints.
  • Generate statics endpoints for resource (this will be good for something a mock authentication)

I don't necessarily have the time for the implementation at the moment. But it's something I can look into within coming weeks. I'm open for discussions on this after which we can determine if it's worth adding to the project to do list (roadmap).

[Feature request] Code snippets storage

Context:

As a developer, I often find myself reusing code snippets/ commands across various projects and environments. Having an efficient and organized way to store and retrieve these snippets within devtools-x would greatly enhance productivity and ensure consistency.

Screenshot 2024-08-28 at 22 14 49

Proposed scope:

  • Snippet Creation: Ability to create and save code snippets within the app. This includes support for multiple languages, syntax highlighting, and formatting options. (Our monaco editor)

  • Organization: Allow users to organize snippets into folders, tags, or categories for easy navigation. Option to add descriptive titles and notes to each snippet.

  • Search & Filter: Implement a powerful search functionality that enables users to quickly find snippets based on keywords, tags, or language. Will combine this with a more advanced keywords based search hook for all the modules aswell

  • Snippet Sharing : Option to share snippets with team members or export them in various formats (e.g., JSON, plain text).

Questions: @Sparkenstein What is your preferred way of storing files/snippets? Also, are there any additional features you'd like to see in the snippet storage system?

Edit: Perhaps wrap the db file storage used on the "JSON Tools" module? await db.get<any>("snippets/group/file");

Additional note/ idea: Would love to make this system reusable for eg. AI prompts, currently using a combination of notes, snippetsLab en notion.

Unable to start on Ubuntu 22.04 b/c of libssl1 dependency

Unable to start dev-tools because of an libssl1 dependency which is introduced because of the allowList: all config here: https://github.com/fosslife/devtools-x/blob/master/src-tauri/tauri.conf.json#L50

# kayo @ Elpis in ~ [22:42:52] C:127
$ sudo dpkg -i ~/Downloads/dev-tools_1.7.1_amd64.deb
(Reading database ... 242407 files and directories currently installed.)
Preparing to unpack .../dev-tools_1.7.1_amd64.deb ...
Unpacking dev-tools (1.7.1) over (1.7.1) ...
Setting up dev-tools (1.7.1) ...
Processing triggers for mailcap (3.70+nmu1ubuntu1) ...
Processing triggers for gnome-menus (3.36.0-1ubuntu3) ...
Processing triggers for desktop-file-utils (0.26-1ubuntu3) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...

# kayo @ Elpis in ~ [22:43:07] 
$ source ~/.zshrc

# kayo @ Elpis in ~ [22:43:13] 
$ dev-tools
dev-tools: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

# kayo @ Elpis in ~ [22:48:05] 
$ sudo dpkg -l | grep 'libssl\|openssl'
ii  libgnutls-openssl27:amd64                      3.7.3-4ubuntu1.1                        amd64        GNU TLS library - OpenSSL wrapper
ii  libssl-dev:amd64                               3.0.2-0ubuntu1.6                        amd64        Secure Sockets Layer toolkit - development files
ii  libssl3:amd64                                  3.0.2-0ubuntu1.6                        amd64        Secure Sockets Layer toolkit - shared libraries
ii  libssl3:i386                                   3.0.2-0ubuntu1.6                        i386         Secure Sockets Layer toolkit - shared libraries
ii  openssl                                        3.0.2-0ubuntu1.6                        amd64        Secure Sockets Layer toolkit - cryptographic utility
ii  perl-openssl-defaults:amd64                    5build2                                 amd64        version compatibility baseline for Perl OpenSSL packages

# kayo @ Elpis in ~ [22:49:36] C:130
$ uname -a
Linux Elpis 5.15.0-48-generic #54-Ubuntu SMP Fri Aug 26 13:26:29 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

# kayo @ Elpis in ~ [22:49:38] 
$ cat /etc/lsb-release 
───────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
       │ File: /etc/lsb-release
───────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
   1   │ DISTRIB_ID=Ubuntu
   2   │ DISTRIB_RELEASE=22.04
   3   │ DISTRIB_CODENAME=jammy
   4   │ DISTRIB_DESCRIPTION="Ubuntu 22.04.1 LTS"
───────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

More context here: tauri-apps/tauri#4470 (comment)

Oxidization of performance sensitive tools

Hello, I would like to help with converting some performance sensitive features to Rust as mentioned in the README. Is there a To-Do list of these modules that would benefit from being converted?

Feature Request: Faker UI

Faker Integration. (I noticed it was deferred)

I'm currently working on support for JSON, CSV and SQL (personally, that's all I need for now). If the community is interested, I can subsequently work my way down to support other formats.

POC
image

You can assign the feature to me. I can come through with a PR soon.

Unknown error while interacting with the clipboard

Hi, starting with version 2.5.0 I can't run devtools anymore:

thread 'main' panicked at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tauri-runtime-wry-0.14.3/src/lib.rs:2021:55:
called `Result::unwrap()` on an `Err` value: Unknown { .. } - "Unknown error while interacting with the clipboard: X11 server connection timed out because it was unreachable"
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Aborted (core dumped)

Same with recently released v 2.6.0

All is fine with 2.4.0
Fedora 39 / GNOME / Xorg

[Feature request] Json converter

Context

We currently have a tool that converts between JSON and YAML. I propose extending this tool to support additional formats such as CSV and XML.

Screenshot 2024-08-28 at 23 07 11

Proposed Change

Certainly! Here's how you can format the extension of format support in your feature request for the JSON converter:

Extend Format Support

Allow the current JSON-YAML converter to also handle conversions between JSON and other popular data formats, improving the tool's utility across different use cases:

Questions for Discussion

  • How should we handle data inconsistencies or conversion errors, especially for complex formats like XML?
  • Maybe integrate the converter with the code snippet storage feature to enable direct conversion and/ or storage of code snippets & conversions. #107
  • Dependencies or libraries to consider: ...
  • Similar features in other projects for reference: ...

Potential Challenges

  • Ensuring robustness and accuracy of conversions across multiple formats.(Correct error handling etc)
  • Integrating this feature without complicating the UI/UX of existing tools. (Perhaps a bit like our current JSON Tools module)

[Feature request] Theme/Token Exporter

A theme/token exporter that seamlessly Integrates with the visual and UI modules of devtools-x

Screenshot 2024-09-03 at 23 31 22

Context

As a developer (/designer), I need a tool to efficiently manage and export design themes and tokens in various formats. Additionally, having a typography scale creator and previewer will streamline the design process.

Scope

  • Export Options: Export themes and tokens in multiple formats (e.g., JSON, SCSS, CSS, PHP).
  • Typography Scale: Create and preview typography scales for consistent design.

Current progress

Color conversions are mostly ready, currently working on the ui & typography exports.

import {
  cssConverter,
  javascriptConverter,
  jsonConverter,
  phpConverter,
  rawConverter,
  sassConverter,
  scssConverter,
  swiftConverter,
  tailwindConverter,
  tokenConverter,
  typeScriptConverter,
  xmlConverter,
  yamlConverter,
} from "@/utils/tokens/converter";

Preview

Screenshot 2024-09-03 at 22 53 54 Screenshot 2024-09-03 at 22 54 53

[Feature discussion] Readme generator

Todo before PR

  • Setup templates
  • Preview final rendering
  • Show/hide editor/ preview
  • Edit a part
  • Reordering parts
  • Removing parts
  • Preview templates before inserting
  • Build more advanced templates like Awsome Readme

Todo for the markdown editor used in both modules

  • Markdown cheatsheet
  • → via one click insertion
  • Wordcount
  • Emoji modal

Screenshot 2024-08-10 at 13 26 47

Inspired by: readme.so

Ideas/ discussion

  • Implement ai/ content writing?
  • Build a better ui for "shields.io/badges"
  • Store references to local/machine files? ...

Build Linux package with dependencies of lower version

The Appimage reports version 'GLIBC_2.32' not found and deb reports error while loading shared libraries: libssl.so.3: cannot open shared object file: No such file or directory. However, on Debian 11 those libraries cannot upgrade to that high version. Considering Debian 11 is still quite popular, please lower the versions of dependencies during building if possible.Thanks.

Add the tools to brew

Brew is a standard way for many people to install tools on Mac. It would be good to have the ability to install devtools-x via brew.

[Feature request] Advanced Markdown Helpers

The markdown editor currently used in two modules, most of the logic is separated into the two main hooks. #94

  • Markdown.tsx
  • Readme.tsx
import { useFile, useMdEditorState } from "@/hooks";

Todo for the markdown editor

  • Wordcount
  • Emoji modal
  • Markdown cheatsheet

→ via one click insertion by the: MarkdownInsertion.tsx

Within the readme editor:

Screenshot 2024-08-10 at 13 26 47

Inspired by: readme.so

Ideas/ discussion for readme editor

  • Implement ai/ content writing by allowing insertion of users own openAi key
  • Build a better ui for "shields.io/badges"
  • Store references to local/machine files? ...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.