```html <web-comment thread-id="your-thread-id" /> ```
## Approve Thread with Thread ID
A streaming way to send data to a Node.js Worker Thread
Runs the following loaders in a worker pool
Use Rollup with workers and ES6 modules today.
Properly hijack require, i.e., properly define require hooks and customizations
Library with base interfaces for LangGraph checkpoint savers.
A mutex for guarding async workflows
Client library for interacting with the LangGraph API
Thread comment integration for Univer Sheets.
Remote data source integration for Univer thread comments.
Shared thread comment UI components and services for Univer.
Thread comment UI integration for Univer Docs.
Use Rollup with workers and ES6 modules today.
Thread comment UI integration for Univer Sheets.
Shared thread comment models, commands, and services for Univer.
Preset for thread comments in Univer Sheets.
Preset for thread comments in Univer Docs.
A native Node.js module that can capture JavaScript stack traces from main and worker threads, even with blocked event loops.
Helpers for communicating between JavaScript environments using message passing.
A minimal and tiny Node.js Worker Thread Pool implementation, a fork of piscina, but with fewer features
Utilities for executing code in Web Workers
a built-in tap extension for t.worker()
TypeScript SDK for Codex APIs.
Get a unique thread ID
A small, dependency-light logging crate with a pragmatic API, color (optional), groups, and a scope timer
CLI for consulting stronger LLMs from your agent workflow
Function tracer backend. Logs all functions entries and exits. Works on all software compiled with mcount() instrumentation.
Command-line interface for TAP Agent operations
RFC 8621 JMAP for Mail method handlers — backend-agnostic, plugs into jmap-server Dispatcher
Fast and flexible thread identifiers
A tracing-subscriber Layer that pretty-prints span chains to stdout and/or the systemd journal
Graph-based workflow orchestration for ADK-Rust agents
Geeny Linux Hub SDK
Turn any Model Context Protocol server into a native command-line application — typed --flags from JSON Schema, multi-transport, daemon mode, and shell-friendly output formats.
Proxide is a debugging proxy for capturing HTTP/2 and gRPC traffic.
Logging framework storing context id in thread local
This gem helps track user journey storing X-Request-Id in the thread context and passing it to Sidekiq jobs
Makes ActiveRecord 'find_by_id, find_by_(attr)' methods and 'has_one, belongs_to' relations are cacheable by PrimaryKey(PK) or any referenced columns using Rails.cache methods. It also supports fetching multiple records using PKs(ids) with find_all_cache method(if cache store supports multiple reads [hint: memcached_store, dalli_store supports.]).
Lazy loading of 'interesting' ActiveRecord model id's, thread-safely and with easy cache reset and lazy creation in testing
Generate unique identifiers in multiple formats: time-sortable ULIDs, compact nanoids, UUID v7, CUID2, Stripe-style prefixed IDs, Twitter-style snowflake IDs, hashid obfuscation, and base-N encoding. Zero dependencies, thread-safe, cryptographically random.
Multi-threaded Redis store for rack ID-based session (connection pooled with option for maximum redis connection)
A Ruby gem for generating Twitter Snowflake IDs using a high-performance Rust backend. Thread-safe with configurable machine ID and custom epoch support.
A thread safe, Redis backed, parallel queue abstraction. Motivation for creating this was for queueing messages based on ID so that very chatty message emitters don't prevent messages from others from being processed
This gem makes updating specified number fields by ActiveRecord in unusual way. Instead of generating sql script to update value in usual way like this: UPDATE users SET money = 10 WHERE id = 1; It replaces it with UPDATE users SET money = money + delta WHERE id = 1; where delta is difference between old value and new value of that field. This solves problem with simultaneous updating of the same field by different threads (problem known as race condition). Source code: https://github.com/izbor/delta_attributes
Online logging solution (like [Datadog](https://www.datadoghq.com)) have drastically transform the way we log. An app will nowdays logs dozen (hundred) of logs per requests. The issue is often to correlate this logs, with the initiating request (or job) and add shared metadata on this logs. Here come `ContextualizedLogs`. The main idea is to enhance your logs from your controller (including `ContextualizedController`, which use a before action), which will add the params to your logs (and some metadata about the request itself, like `request.uuid`). This metadata are stored in a `ActiveSupport::CurrentAttributes` which is a singleton (reset per request). Each subsequent logs in this thread (request) will also be enriched with this metadata, making it easier to find all the logs associated with a request (`uuid`, `ip`, `params.xxx`). On top of this, logs can also be enriched by the ActiveRecord model they use (`create` or `find`) (models including `ContextualizedModel`). So any time a contextualized model is created or find, some metadata related to the model (`id`, ...) will also be added to the logs. Allowing you to find all logs which "touched" this models.
:title: The Ruby API :section: PYAPNS::Client There's python in my ruby! This is a class used to send notifications, provision applications and retrieve feedback using the Apple Push Notification Service. PYAPNS is a multi-application APS provider, meaning it is possible to send notifications to any number of different applications from the same application and same server. It is also possible to scale the client to any number of processes and servers, simply balanced behind a simple web proxy. It may seem like overkill for such a bare interface - after all, the APS service is rather simplistic. However, PYAPNS takes no shortcuts when it comes to completeness/compliance with the APNS protocol and allows the user many optimization and scaling vectors not possible with other libraries. No bandwidth is wasted, connections are persistent and the server is asynchronous therefore notifications are delivered immediately. PYAPNS takes after the design of 3rd party push notification service that charge a fee each time you push a notification, and charge extra for so-called 'premium' service which supposedly gives you quicker access to the APS servers. However, PYAPNS is free, as in beer and offers more scaling opportunities without the financial draw. :section: Provisioning To add your app to the PYAPNS server, it must be `provisioned` at least once. Normally this is done once upon the start-up of your application, be it a web service, desktop application or whatever... It must be done at least once to the server you're connecting to. Multiple instances of PYAPNS will have to have their applications provisioned individually. To provision an application manually use the `PYAPNS::Client#provision` method. require 'pyapns' client = PYAPNS::Client.configure client.provision :app_id => 'cf', :cert => '/home/ss/cert.pem', :env => 'sandbox', :timeout => 15 This basically says "add an app reference named 'cf' to the server and start a connection using the certification, and if it can't within 15 seconds, raise a `PYAPNS::TimeoutException` That's all it takes to get started. Of course, this can be done automatically by using PYAPNS::ClientConfiguration middleware. `PYAPNS::Client` is a singleton class that is configured using the class method `PYAPNS::Client#configure`. It is sensibly configured by default, but can be customized by specifying a hash See the docs on `PYAPNS::ClientConfiguration` for a list of available configuration parameters (some of these are important, and you can specify initial applications) to be configured by default. :section: Sending Notifications Once your client is configured, and application provisioned (again, these should be taken care of before you write notification code) you can begin sending notifications to users. If you're wondering how to acquire a notification token, you've come to the wrong place... I recommend using google. However, if you want to send hundreds of millions of notifications to users, here's how it's done, one at a time... The `PYAPNS::Client#notify` is a sort of polymorphic method which can notify any number of devices at a time. It's basic form is as follows: client.notify 'cf', 'long ass app token', {:aps=> {:alert => 'hello?'}} However, as stated before, it is sort of polymorphic: client.notify 'cf', ['token', 'token2', 'token3'], [alert, alert2, alert3] client.notify :app_id => 'cf', :tokens => 'mah token', :notifications => alertHash client.notify 'cf', 'token', PYAPNS::Notification('hello tits!') As you can see, the method accepts paralell arrays of tokens and notifications meaning any number of notifications can be sent at once. Hashes will be automatically converted to `PYAPNS::Notification` objects so they can be optimized for the wire (nil values removed, etc...), and you can pass `PYAPNS::Notification` objects directly if you wish. :section: Retrieving Feedback The APS service offers a feedback functionality that allows application servers to retrieve a list of device tokens it deems to be no longer in use, and the time it thinks they stopped being useful (the user uninstalled your app, better luck next time...) Sounds pretty straight forward, and it is. Apple recommends you do this at least once an hour. PYAPNS will return a list of 2-element lists with the date and the token: feedbacks = client.feedback 'cf' :section: Asynchronous Calls PYAPNS::Client will, by default, perform no funny stuff and operate entirely within the calling thread. This means that certain applications may hang when, say, sending a notification, if only for a fraction of a second. Obviously not a desirable trait, all `provision`, `feedback` and `notify` methods also take a block, which indicates to the method you want to call PYAPNS asynchronously, and it will be done so handily in another thread, calling back your block with a single argument when finished. Note that `notify` and `provision` return absolutely nothing (nil, for you rub--wait you are ruby developers!). It is probably wise to always use this form of operation so your calling thread is never blocked (especially important in UI-driven apps and asynchronous servers) Just pass a block to provision/notify/feedback like so: PYAPNS::Client.instance.feedback do |feedbacks| feedbacks.each { |f| trim_token f } end :section: PYAPNS::ClientConfiguration A middleware class to make `PYAPNS::Client` easy to use in web contexts Automates configuration of the client in Rack environments using a simple confiuration middleware. To use `PYAPNS::Client` in Rack environments with the least code possible `use PYAPNS::ClientConfiguration` (no, really, in some cases, that's all you need!) middleware with an optional hash specifying the client variables. Options are as follows: use PYAPNS::ClientConfiguration( :host => 'http://localhost/' :port => 7077, :initial => [{ :app_id => 'myapp', :cert => '/home/myuser/apps/myapp/cert.pem', :env => 'sandbox', :timeout => 15 }]) Where the configuration variables are defined: :host String the host where the server can be found :port Number the port to which the client should connect :initial Array OPTIONAL - an array of INITIAL hashes INITIAL HASHES: :app_id String the id used to send messages with this certification can be a totally arbitrary value :cert String a path to the certification or the certification file as a string :env String the environment to connect to apple with, always either 'sandbox' or 'production' :timoeut Number The timeout for the server to use when connecting to the apple servers :section: PYAPNS::Notification An APNS Notification You can construct notification objects ahead of time by using this class. However unnecessary, it allows you to programmatically generate a Notification like so: note = PYAPNS::Notification.new 'alert text', 9, 'flynn.caf', {:extra => 'guid'} -- or -- note = PYAPNS::Notification.new 'alert text' These can be passed to `PYAPNS::Client#notify` the same as hashes
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.