Volt - A powerful, fast and memory safe package manager for the web

Overview

Volt

A powerful, fast and memory safe package manager for the web. (WIP)



🧪 Benchmarks (Work In Progress)

Speed

image

🌐 Bandwidth

image

💾 Space

(Coming Soon!)

Credits:

Volt uses third party code from different libraries. A list of them can be found here.

Comments
  • Crediting External Libraries

    Crediting External Libraries

    Hi there,

    From what I can see, you all have just lifted code from multiple crates without any acknowledgement at all. This is legally infringing even if you're copying from permissively licensed crates. Please create a file stating what all third party code has been used.

    opened by firedupmike 37
  • feat: new cli

    feat: new cli

    This is the initial design of the CLI using clap-derive. Some things might not fit with the new CLI and will require some refactoring. I'll keep the refactoring to a minimum for now (a story for a separate PR), so that we can focus on initial design :)

    Closes #38

    opened by numToStr 18
  • Any relation to Volta?

    Any relation to Volta?

    Hi! This looks like a really cool project! The performance numbers are impressive.

    Quick question, does this project have any relation to Volta, the Node version / tool manager?

    opened by kjvalencik 5
  • Clap for command line

    Clap for command line

    Is your feature request related to a problem? Please describe. I found that the project uses an own solution for displaying cli command description.

    Describe the solution you'd like I guess it would be profitable for the project to use the standard de-facto solution for the Rust CLI: the clap crate. It has a lot of nice features that would reduce an amount of code that is needed to support.

    opened by Lodin 5
  • Migrate to clap-derive for cli

    Migrate to clap-derive for cli

    Is your feature request related to a problem? Please describe. Currently, the Volt Cli is built using a builder pattern which is fine but the downside is the subcommand matching is not optimal as it is relying on a string for matching https://github.com/voltpkg/volt/blob/bd7f714f1a648f07036a28f2c69428acd1e851b7/src/main.rs#L37-L74

    Describe the solution you'd like Using derive feature of Clap to build the CLI


    I would like to contribute to this change. So, I am putting this here to gather feedback before I start working on it :)

    opened by numToStr 4
  • Want some help?

    Want some help?

    Hi!

    I'm the former lead dev for the official NPM CLI, the author of npx and the [email protected] release that got NPM matching Yarn speeds back in the day. Pretty much until NPM inc started union busting and firing all my colleagues lol

    I'm also an avid Rust user, and for a while, I was trying to write a package manager for js in Rust, too, in the form of https://github.com/orogene/orogene until I burned out and decided I'd rather be doing something else with that time.

    This is all to say, I would love to help out, if only as an accessible resource for y'all when you're trying to navigate the way NPM &co typically do things, how to stay compliant with weird third party registries, and whatever else you might want to chat about! The "community" link on your site wasn't working but if there's a discord or something you'd like me to join and this seems like a good idea please lmk!

    Anyway great job and I look forward to seeing where this project goes!

    opened by zkat 3
  • no method named `replace` found for struct `PathBuf` in the current scope

    no method named `replace` found for struct `PathBuf` in the current scope

    Current master (commit 00cd266520e8518d2ff272664b5c24003c0e86e5) doesn’t build on Linux:

    error[E0599]: no method named `replace` found for struct `PathBuf` in the current scope
       --> src/utils/src/lib.rs:166:19
        |
    166 |         src = src.replace(r"\", "/");
        |                   ^^^^^^^ method not found in `PathBuf`
    
    For more information about this error, try `rustc --explain E0599`.
    error: could not compile `utils` due to previous error
    

    (I’d suggest using portable methods like PathBuf::join and Path::file_name so you don’t need all these platform-specific cases.)

    opened by andersk 3
  • Panic on `volt install` command

    Panic on `volt install` command

    Describe the bug When entering the command volt install the following panic is produced.

    thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error("invalid type: map, expected a string", line: 27, column: 16)', src\utils\src\package.rs:195:49
    stack backtrace:
       0:     0x7ff620c9546e - std::backtrace_rs::backtrace::dbghelp::trace
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\/library\std\src\..\..\backtrace\src\backtrace\dbghelp.rs:98
       1:     0x7ff620c9546e - std::backtrace_rs::backtrace::trace_unsynchronized
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\/library\std\src\..\..\backtrace\src\backtrace\mod.rs:66
       2:     0x7ff620c9546e - std::sys_common::backtrace::_print_fmt
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\/library\std\src\sys_common\backtrace.rs:67
       3:     0x7ff620c9546e - std::sys_common::backtrace::_print::impl$0::fmt
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\/library\std\src\sys_common\backtrace.rs:46
       4:     0x7ff620cb3c5a - core::fmt::write
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\/library\core\src\fmt\mod.rs:1117
       5:     0x7ff620c8cb48 - std::io::Write::write_fmt<std::sys::windows::stdio::Stderr>
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\/library\std\src\io\mod.rs:1667
       6:     0x7ff620c98196 - std::sys_common::backtrace::_print
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\/library\std\src\sys_common\backtrace.rs:49
       7:     0x7ff620c98196 - std::sys_common::backtrace::print
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\/library\std\src\sys_common\backtrace.rs:36
       8:     0x7ff620c98196 - std::panicking::default_hook::closure$1
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\/library\std\src\panicking.rs:210
       9:     0x7ff620c97ca8 - std::panicking::default_hook
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\/library\std\src\panicking.rs:227
      10:     0x7ff620c987f5 - std::panicking::rust_panic_with_hook
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\/library\std\src\panicking.rs:624
      11:     0x7ff620c983db - std::panicking::begin_panic_handler::closure$0
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\/library\std\src\panicking.rs:521
      12:     0x7ff620c95d97 - std::sys_common::backtrace::__rust_end_short_backtrace<std::panicking::begin_panic_handler::closure$0,never$>
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\/library\std\src\sys_common\backtrace.rs:141
      13:     0x7ff620c98339 - std::panicking::begin_panic_handler
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\/library\std\src\panicking.rs:517
      14:     0x7ff620ee5e40 - core::panicking::panic_fmt
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\/library\core\src\panicking.rs:93
      15:     0x7ff620ee5f53 - core::result::unwrap_failed
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\/library\core\src\result.rs:1617
      16:     0x7ff6202e5624 - enum$<core::result::Result<utils::package::PackageJson,serde_json::error::Error> >::unwrap<utils::package::PackageJson,serde_json::error::Error>
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\library\core\src\result.rs:1299
      17:     0x7ff6202fefab - utils::package::PackageJson::from
                                   at C:\Users\Isaak\Projects\rust\volt\src\utils\src\package.rs:195
      18:     0x7ff62014fd22 - install::command::impl$0::exec::generator$0
                                   at C:\Users\Isaak\Projects\rust\volt\src\install\src\command.rs:72
      19:     0x7ff62014eda1 - core::future::from_generator::impl$1::poll<install::command::impl$0::exec::generator$0>
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\library\core\src\future\mod.rs:80
      20:     0x7ff6201b7f7c - core::future::future::impl$1::poll<alloc::boxed::Box<dyn$<core::future::future::Future,assoc$<Output,enum$<core::result::Result<tuple$<>,miette::protocol::DiagnosticReport>, 1, 18446744073709551615, Err> > >,core::marker::Send>,alloc::alloc::Global> >
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\library\core\src\future\future.rs:119
      21:     0x7ff61fcf5b80 - volt::commands::impl$1::run::generator$0
                                   at C:\Users\Isaak\Projects\rust\volt\src\volt\src\commands.rs:129
      22:     0x7ff61fcf3c11 - core::future::from_generator::impl$1::poll<volt::commands::impl$1::run::generator$0>
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\library\core\src\future\mod.rs:80
      23:     0x7ff61fcf89cb - volt::main::generator$0
                                   at C:\Users\Isaak\Projects\rust\volt\src\volt\src\main.rs:47
      24:     0x7ff61fcf3cf1 - core::future::from_generator::impl$1::poll<volt::main::generator$0>
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\library\core\src\future\mod.rs:80
      25:     0x7ff61fcf47a6 - tokio::park::thread::impl$5::block_on::closure$0<core::future::from_generator::GenFuture<volt::main::generator$0> >
                                   at C:\Users\Isaak\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-1.10.0\src\park\thread.rs:263
      26:     0x7ff61fcf9378 - tokio::coop::with_budget::closure$0<enum$<core::task::poll::Poll<enum$<core::result::Result<tuple$<>,miette::protocol::DiagnosticReport>, 1, 18446744073709551615, Err> > >,tokio::park::thread::impl$5::block_on::closure$0>
                                   at C:\Users\Isaak\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-1.10.0\src\coop.rs:106
      27:     0x7ff61fcf7cee - std::thread::local::LocalKey<core::cell::Cell<tokio::coop::Budget> >::try_with<core::cell::Cell<tokio::coop::Budget>,tokio::coop::with_budget::closure$0,enum$<core::task::poll::Poll<enum$<core::result::Result<tuple$<>,miette::protocol::DiagnosticReport>,
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\library\std\src\thread\local.rs:399
      28:     0x7ff61fcf7c0c - std::thread::local::LocalKey<core::cell::Cell<tokio::coop::Budget> >::with<core::cell::Cell<tokio::coop::Budget>,tokio::coop::with_budget::closure$0,enum$<core::task::poll::Poll<enum$<core::result::Result<tuple$<>,miette::protocol::DiagnosticReport>, 1, 1
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\library\std\src\thread\local.rs:375
      29:     0x7ff61fcf41e0 - tokio::coop::with_budget
                                   at C:\Users\Isaak\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-1.10.0\src\coop.rs:99
      30:     0x7ff61fcf41e0 - tokio::coop::budget
                                   at C:\Users\Isaak\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-1.10.0\src\coop.rs:76
      31:     0x7ff61fcf41e0 - tokio::park::thread::CachedParkThread::block_on<core::future::from_generator::GenFuture<volt::main::generator$0> >
                                   at C:\Users\Isaak\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-1.10.0\src\park\thread.rs:263
      32:     0x7ff61fcf9aa2 - tokio::runtime::enter::Enter::block_on<core::future::from_generator::GenFuture<volt::main::generator$0> >
                                   at C:\Users\Isaak\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-1.10.0\src\runtime\enter.rs:151
      33:     0x7ff61fcf35cc - tokio::runtime::thread_pool::ThreadPool::block_on<core::future::from_generator::GenFuture<volt::main::generator$0> >
                                   at C:\Users\Isaak\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-1.10.0\src\runtime\thread_pool\mod.rs:71
      34:     0x7ff61fcf9888 - tokio::runtime::Runtime::block_on<core::future::from_generator::GenFuture<volt::main::generator$0> >
                                   at C:\Users\Isaak\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-1.10.0\src\runtime\mod.rs:452
      35:     0x7ff61fcf3a25 - volt::main
                                   at C:\Users\Isaak\Projects\rust\volt\src\volt\src\main.rs:51
      36:     0x7ff61fcf6c3b - core::ops::function::FnOnce::call_once<enum$<core::result::Result<tuple$<>,miette::protocol::DiagnosticReport>, 1, 18446744073709551615, Err> (*)(),tuple$<> >
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\library\core\src\ops\function.rs:227
      37:     0x7ff61fcf9c3b - std::sys_common::backtrace::__rust_begin_short_backtrace<enum$<core::result::Result<tuple$<>,miette::protocol::DiagnosticReport>, 1, 18446744073709551615, Err> (*)(),enum$<core::result::Result<tuple$<>,miette::protocol::DiagnosticReport>, 1, 1844674407370
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\library\std\src\sys_common\backtrace.rs:125
      38:     0x7ff61fcf36e1 - std::rt::lang_start::closure$0<enum$<core::result::Result<tuple$<>,miette::protocol::DiagnosticReport>, 1, 18446744073709551615, Err> >
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\library\std\src\rt.rs:63
      39:     0x7ff620c98d56 - core::ops::function::impls::impl$2::call_once
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\library\core\src\ops\function.rs:259
      40:     0x7ff620c98d56 - std::panicking::try::do_call
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\/library\std\src\panicking.rs:403
      41:     0x7ff620c98d56 - std::panicking::try
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\/library\std\src\panicking.rs:367
      42:     0x7ff620c98d56 - std::panic::catch_unwind
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\/library\std\src\panic.rs:129
      43:     0x7ff620c98d56 - std::rt::lang_start_internal::closure$2
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\/library\std\src\rt.rs:45
      44:     0x7ff620c98d56 - std::panicking::try::do_call
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\/library\std\src\panicking.rs:403
      45:     0x7ff620c98d56 - std::panicking::try
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\/library\std\src\panicking.rs:367
      46:     0x7ff620c98d56 - std::panic::catch_unwind
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\/library\std\src\panic.rs:129
      47:     0x7ff620c98d56 - std::rt::lang_start_internal
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\/library\std\src\rt.rs:45
      48:     0x7ff61fcf36af - std::rt::lang_start<enum$<core::result::Result<tuple$<>,miette::protocol::DiagnosticReport>, 1, 18446744073709551615, Err> >
                                   at /rustc/a49e38e672c60da788360e088f00ad12353e3913\library\std\src\rt.rs:62
      49:     0x7ff61fcf3ad6 - main
      50:     0x7ff620ee3ce0 - invoke_main
                                   at d:\agent\_work\4\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
      51:     0x7ff620ee3ce0 - __scrt_common_main_seh
                                   at d:\agent\_work\4\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
      52:     0x7ffd2e7954e0 - BaseThreadInitThunk
      53:     0x7ffd2f8e485b - RtlUserThreadStart
    

    To Reproduce Steps to reproduce the behavior:

    1. Clone this repo: https://github.com/website-checks/website-checks
    2. Go to root directory and run volt install
    3. See error

    Expected behavior A nice response saying all packages have been installed.

    Screenshots image

    Desktop (please complete the following information):

    • OS: Windows 11
    • Terminal: Powershell Core

    Note that I'm on the 'main' branch.

    opened by MyIsaak 2
  • Improved JSON deserialization of package.json

    Improved JSON deserialization of package.json

    Still can't handle all formats of funding field.

    The following fields are not yet supported: browser, directories, peerDependenciesMeta, overrides, publishConfig

    Recommend consolidating all serde structs in the future.

    opened by tyrumus 0
  • chore(deps): bump thread_local from 1.1.3 to 1.1.4

    chore(deps): bump thread_local from 1.1.3 to 1.1.4

    Bumps thread_local from 1.1.3 to 1.1.4.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the Security Alerts page.
    dependencies 
    opened by dependabot[bot] 0
  • chore(deps): bump regex from 1.5.4 to 1.5.5

    chore(deps): bump regex from 1.5.4 to 1.5.5

    Bumps regex from 1.5.4 to 1.5.5.

    Changelog

    Sourced from regex's changelog.

    1.5.5 (2022-03-08)

    This releases fixes a security bug in the regex compiler. This bug permits a vector for a denial-of-service attack in cases where the regex being compiled is untrusted. There are no known problems where the regex is itself trusted, including in cases of untrusted haystacks.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • [Question] NodeJS free npm replacement

    [Question] NodeJS free npm replacement

    Hello, I'm currently looking for solutions to acheive frontend only stuff without the need of npm/node at all. I've seen swc to do all the js compiling (tough the rust cli is still wip) grass to do scss compiling, still wip too. So my question is could volt be a total replacement to npm without the need to install node at all on my system ? Thank you

    opened by Shotman 3
Owner
Volt Package Manager
The next-generation package manager for the web.
Volt Package Manager
Implementation of the RealWorld backend API spec in Actix, Rust's powerful actor system and most fun web framework.

Actix codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the RealWorld spec and API. ❗ (2021/05/13) This cod

Allen 470 Nov 16, 2022
Sōzu HTTP reverse proxy, configurable at runtime, fast and safe, built in Rust. It is awesome! Ping us on gitter to know more

Sōzu · Sōzu is a lightweight, fast, always-up reverse proxy server. Why use Sōzu? Hot configurable: Sozu can receive configuration changes at runtime

sōzu 1.9k Nov 30, 2022
Sauron is an html web framework for building web-apps. It is heavily inspired by elm.

sauron Guide Sauron is an web framework for creating fast and interactive client side web application, as well as server-side rendering for back-end w

Jovansonlee Cesar 1.7k Nov 23, 2022
Hot reload static web server for deploying mutiple static web site with version control.

SPA-SERVER It is to provide a static web http server with cache and hot reload. 中文 README Feature Built with Hyper and Warp, fast and small! SSL with

null 6 Aug 17, 2022
Thruster - An fast and intuitive rust web framework

A fast, middleware based, web framework written in Rust

null 912 Nov 30, 2022
Seed is a Rust front-end framework for creating fast and reliable web apps with an Elm-like architecture.

Seed is a Rust front-end framework for creating fast and reliable web apps with an Elm-like architecture.

null 3.5k Nov 25, 2022
Murasaki is a Fast, Secure, and Reliable Webkit based web browser.

Murasaki is a Fast, Secure, and Reliable Webkit based web browser. Table of Contents Goals Status Usage License Goals Security: Be secure, and not com

Moon Laboratories 5 Nov 17, 2021
Perseus is a blazingly fast frontend web development framework built in Rust with support for major rendering strategies

Perseus is a blazingly fast frontend web development framework built in Rust with support for major rendering strategies, reactivity without a virtual DOM, and extreme customizability

arctic_hen7 1.1k Nov 24, 2022
Super Fast & High Performance minimalist web framework for rust

Super Fast & High Performance minimalist web framework for rust

null 6 Oct 12, 2022
A cookie manager middleware built on top of tower.

tower-cookies A cookie manager middleware built on top of tower. Example With axum: use axum::{handler::get, Router}; use std::net::SocketAddr; use to

Imbolc 43 Nov 23, 2022
A Google-like web search engine that provides the user with the most relevant websites in accordance to his/her query, using crawled and indexed textual data and PageRank.

Mini Google Course project for the Architecture of Computer Systems course. Overview: Architecture: We are working on multiple components of the web c

Max 11 Aug 10, 2022
Ergonomic and modular web framework built with Tokio, Tower, and Hyper

axum axum is a web application framework that focuses on ergonomics and modularity. More information about this crate can be found in the crate docume

Tokio 7.4k Nov 30, 2022
A rust web framework with safety and speed in mind.

darpi A web api framework with speed and safety in mind. One of the big goals is to catch all errors at compile time, if possible. The framework uses

null 32 Apr 11, 2022
A full-featured and easy-to-use web framework with the Rust programming language.

Poem Framework A program is like a poem, you cannot write a poem without writing it. --- Dijkstra A full-featured and easy-to-use web framework with t

Poem Web 2.1k Nov 27, 2022
example of a full stack web app (backend and frontend) wrtiten in Rust

rust-fullstack-example An example of creating a full stack web application (backend and frontend) using Rust. Backend Go to ./backend and start the se

mario 40 Nov 12, 2022
📝 Web-based, reactive Datalog notebooks for data analysis and visualization

Percival is a declarative data query and visualization language. It provides a reactive, web-based notebook environment for exploring complex datasets, producing interactive graphics, and sharing results.

Eric Zhang 475 Nov 20, 2022
The simplest build-time framework for writing web apps with html templates and typescript

Encoped A build-time fast af tool to write static apps with html and TypeScript Features Template-based ESLint, Prettier and Rollup integration No ext

null 1 Dec 11, 2021
Demo of Rust and axum web framework

Demo of Rust and axum web framework Demonstration of: Rust: programming language that focuses on reliability and stability. axum: web framework that f

Joel Parker Henderson 102 Nov 28, 2022
Hirola is an opinionated web framework for that is focused on simplicity and predictability.

Hirola Hirola is an opinionated web framework for that is focused on simplicity and predictability. Goals Keep it simple. Most Rust web frameworks hav

null 27 Nov 3, 2022