ruby-pg
open62541
Our great sponsors
ruby-pg | open62541 | |
---|---|---|
9 | 5 | |
751 | 2,415 | |
- | 1.4% | |
7.5 | 9.8 | |
7 days ago | 6 days ago | |
C | C | |
GNU General Public License v3.0 or later | Mozilla Public License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ruby-pg
-
Test Driving a Rails API - Part One
If you installed Postgres via Homebrew, you need to configure bundler so that when it installs the pg gem, it knows where to find the pg_config executable, which is installed as part of Postgres. The pg gem is the Ruby interface to Postgres and requires pg_config during installation. We can use this command to configure bundler so that it can find it and successfully install pg.
-
It's not Ruby that's slow, it's your database
Before we proceed, are you aware that a lot of popular database drivers for Ruby (and Python? not sure) implement the performance-critical bits in good old natively compiled C?
For example, the Ruby postgres gem: https://github.com/ged/ruby-pg/tree/master/ext
(I wasn't sure until I checked just now, so I'm not questioning your familiarity with the tech. Just not sure if that's commonly known)
So no, it's not the database, it's your interpreted language.
-
Insert CSV Rows into a Database Using Vanilla Ruby
$ gem info pg *** LOCAL GEMS *** pg (1.3.4) Authors: Michael Granger, Lars Kanis Homepage: https://github.com/ged/ruby-pg License: BSD-2-Clause Installed at: /Users/jvon1904/.rvm/gems/ruby-3.0.3 Pg is the Ruby interface to the PostgreSQL RDBMS
- Explaining Ruby Fibers
-
Is it possible to lazy load a long text from the database?
The low level pg gem has support for Postgres streaming, but this is row-based. You're wanting to stream effectively from a single field, which Postgres won't do for you.
-
49 Days of Ruby: Day 31 - Working with Databases
The ruby-pg gem provides an interface between your Ruby code and your PostgreSQL database.
-
How to fix "Bundler::GemRequireError" and "Gem Load Error is: AddDllDirectory failed" when switching from Sqlite3 to Postgres in Rails 6
set RUBY_DLL_PATH=/bin as in our CI before running the ruby app.
-
Ruby 3.0 and the new FiberScheduler interface
> each is in its own OS thread and GVL releases when the thread blocks.
The GVL isn't automatically released when a thread blocks on IO. Each bit of native code performing IO has to explicitly release it like in the pg gem here: https://github.com/ged/ruby-pg/blob/fb465855ce1dd12cf7eb69c9...
open62541
-
What Cannot Be Skipped About the Skiplist: A Survey of Skiplists and Their Appl
Zip trees are great!
For a project I made a version that uses the memory location of the entries to construct the (random) rank on the fly.
So it’s a binary tree structure that requires the same memory as a linked list (two pointers) only!
https://github.com/open62541/open62541/blob/master/deps/zipt...
-
How to be good at C++
Here is a bug report I submitted to open62541, over a year ago. Figuring out how that library works... I don't even understand the terminology; it's all very generic (everything is called 'nodes', 'objects', etc.), there are loads of ways to do anything, type safety is not a concept the library approves of so that doesn't help either, and most functions you cannot even find in the source as they are generated by macros. It doesn't help that OPC UA is a big standard (thousands of pages) either. It boggles the mind that the reference implementation for something used in so many critical places is so badly documented, and at the same time allows so many ways to get things subtly wrong.
-
Apache PLC4X announcing end of community support due to missing funding
There's quite a bit of OPC UA bashing across this project. So let me chime in to keep the "balance in the universe".
OPC UA is a protocol to interact with an object-oriented information model. Basically CORBA done right to use object-oriented principles and reuse software components in industrial automation.
Since OPC UA is a protocol, its performance depends mostly on the implementation. Some PLCs may be crappy. But that doesn't translate into bad performance overall. My experience goes to the exact contrary.
Full disclosure, I lead-develop and maintain an open source OPC UA implementation that sees quite a bit of use by the big guys in the automation domain. We use C for performance. And we do have funding from the industry.
https://github.com/open62541/open62541
But yes, it is hard to break into this world. Especially since solutions have to be maintained for 20+ years. A solo developer usually cannot ensure that this will still be usable some years down the line.
-
How do you go about understanding and using new libraries?
Earlier this year I was trying to use open62541, and ended up writing this bugreport. The developers are, so far, ignoring it, and it's a crying shame because it makes the library so much less useful than it could otherwise be.
-
How to check reliability of Ethernet connection between an Intel NUC and ARM cortex-M micro controller ?
Why don't you use a standardized industrial protocol, that support these requirements? Would perhaps OPC UA meet your needs? There are a number of open source implementations and the standard itself is open, too.
What are some alternatives?
hypopg - Hypothetical Indexes for PostgreSQL
plc4x - PLC4X The Industrial IoT adapter
cubrid - CUBRID is a comprehensive open source relational database management system highly optimized for Web Applications.
SGDK - SGDK - A free and open development kit for the Sega Mega Drive
async-pool - Provides support for connection pooling both singleplex and multiplex resources.
node-opcua - Unlocking the Full Potential of OPC UA with Typescript and NodeJS - http://node-opcua.github.io/
pymgclient - Python Memgraph Client
libsmb2 - SMB2/3 userspace client
psxsdk - Homebrew Sony PlayStation 1 SDK
pgslice - Postgres partitioning as easy as pie
c-open - CANopen stack for embedded devices