GithubHelp home page GithubHelp logo

eser / stack Goto Github PK

View Code? Open in Web Editor NEW
75.0 3.0 4.0 14.05 MB

The Portability Solution for Your Code! ๐Ÿš€ Powered By Deno and JavaScript.

Home Page: https://eserstack.com/

License: Other

TypeScript 98.73% Dockerfile 0.25% JavaScript 0.17% HTML 0.15% CSS 0.70%
deno function faas runtime bot platform portability typescript acikkaynak cool

stack's Introduction

eserstack - The Portability Solution for Your Code! ๐Ÿš€

JSR @eser codecov Build Pipeline Built with the Deno Standard Library

eser stack javascript toolkit

Step into a world where you never have to deal with portability and platform issues. Whether you're targeting web browsers, serverless platforms, chatbots, CLI, or multiple platforms simultaneously, eserstack ensures your code runs flawlessly everywhere.

๐Ÿ“– Overview

eserstack is a JavaScript toolkit designed to uphold best practices and enhance portability across different platforms.

Beyond being a toolkit, eserstack advocates for a philosophy that emphasizes writing code driven by algorithms, design and patterns, not by platform-specific implementation details.

While eserstack offers you a layer of abstraction that isolates you from the platforms, you can focus on your implementation. Don't worry about the rest, your solution will excel across diverse environments.

Every component of eserstack is designed to work in harmony, strives to offer you an intuitive and delightful development experience.

๐ŸŒŸ Why choose eserstack?

eserstack is meticulously designed for developers who:

  • Seek Portability: If you've ever felt the need for a JavaScript/TypeScript framework that seamlessly works across web browsers, Deno, Supabase, Netlify, AWS Lambda and Cloudflare Workers, eserstack is your answer. See the full list of supported platforms

  • Love Functional Programming: eserstack not only supports but encourages a functional programming approach. This means you can write your code once and run it on various platforms without modifications. Dive into our functional programming tools

  • Want Enhanced Testability: With the removal of hard-coded dependencies and the promotion of loose coupling, eserstack enhances the testability of your codebase, ensuring that your applications run as expected. Explore our dependency injection system

  • Desire a Unified Approach: Instead of juggling multiple libraries and tools, eserstack provides a unified toolkit where each component works seamlessly with the others, ensuring a smoother development experience. Check out our component set

  • Prioritize Best Practices: If you've been struggling with maintaining best practices in your development process, eserstack is here to guide you. With built-in support for principles like 12factor and dependency injection, you can ensure that your code remains clean, maintainable, and scalable. Learn more about our best practices approach

๐Ÿ“‚ Components

Component Set

Component Area Description Latest Version
๐Ÿ““ @eser/directives Rules The ground rules adhered to by the entire ecosystem -
๐Ÿ“‘ @eser/standards Abstraction Provides common abstraction layers for DI JSR
โš™๏ธ @eser/di Manager Dependency injection system JSR
๐Ÿงฑ @eser/fp Functions Library Tools for functional programming JSR
๐Ÿ” @eser/config Manager Load configurations from environment JSR
ใ€ฐ๏ธ @eser/parsing Manager Parsing tools for various strings and streams JSR

Visit the respective component page for detailed usage instructions.

Our Goal / The Bigger Picture

We strive to run the following code seamlessly across all platforms we support:

import { Runtime, Context } from "@eser/runtime";

const home = (ctx: Context) => {
  return ctx.results.jsx(<h1>Hello there!</h1>);
};

const profile = (ctx: Context) => {
  const slug = ctx.input.param("id");
  const db = ctx.di`db`;

  ctx.logger.info(`Visiting the profile of ${slug}!`);

  return ctx.results.json(db.query("SELECT * FROM users WHERE slug=:slug", { slug }));
};

const router = (ctx: Context) => {
  switch (true) {
    case ctx.route.match("/"):
      return home(ctx);
    case ctx.route.match("/:id"):
      return profile(ctx);
    default:
      return ctx.results.notFound();
  }
};

const runtime = new Runtime();
runtime.ci.register("db", new DatabaseConnection());
runtime.listen(router); // or runtime.execute(fn);

Platform Support

Since the reason we started to build this project is the feeling of a lack of a JavaScript/TypeScript framework that is portable across many platforms, we're always looking for the widen this list. By adhering to WinterCG guidelines and TC39 standards, we strive to provide a framework that is portable across all these platforms.

  • Deno
  • Node.js
  • Web Browsers
  • Service Workers
  • Deno Deploy
  • Cloudflare Workers
  • Supabase Functions
  • Netlify
  • AWS Lambda
  • Google Cloud Functions
  • Azure Functions
  • Telegram Bots
  • Discord Bots
  • Slack Bots

...and all other platforms that comply with the WinterCG guidelines.

๐Ÿš€ Jumpstart

Ensure that Deno 1.45 or higher is installed on your system first.

First, install cool cli globally, then create a new project:

$ deno install -g jsr:@cool/cli

$ cool create my-project

Creating "cool web project template 0.0.1" on my-project...
...
done.

๐Ÿ™‹๐Ÿป FAQ

Want to report a bug or request a feature?

If you're going to report a bug or request a new feature, please ensure first that you comply with the conditions found under @eser/directives. After that, you can report an issue or request using GitHub Issues. Thanks in advance.

Want to contribute?

It is publicly open for any contribution from the community. Bug fixes, new features and additional components are welcome.

If you're interested in becoming a contributor and enhancing the ecosystem, please start by reading through our CONTRIBUTING.md.

If you're not sure where to begin, take a look at the issues labeled good first issue and help wanted. Reviewing closed issues can also give you a sense of the types of contributions we're looking for and you can tackle.

If you're already an experienced OSS contributor, let's take you to the shortest path: To contribute to the codebase, just fork the repo, push your changes to your fork, and then submit a pull request.

Requirements

Versioning

This project follows Semantic Versioning. For the versions available, see the tags on this repository.

License

This project is licensed under the Apache 2.0 License. For further details, please see the LICENSE file.

To support the project...

Visit my GitHub Sponsors profile at github.com/sponsors/eser

stack's People

Contributors

ayhansipahi avatar dependabot[bot] avatar eser avatar wralith 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

Watchers

 avatar  avatar  avatar

stack's Issues

Bug report: install command not working on deno 1.38.2 with cool version 0.7.10

Describe the bug
When I try to download the project with the following command, I get an error.

To Reproduce
On a machine with deno installed, run this command:

deno install -A -n cool https://c00l.deno.dev

and see error.

Expected behavior
a successful download

Screenshots\

Screenshot 2023-11-21 153654

Desktop (please complete the following information):

  • OS: Ubuntu v20 on WSL 2

Additional context\

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.